‘壹’ php 用CURL 抓取错误提示:Recv failure: Connection was aborted 怎么解决 求助各位大神
一、原因分析
web站点目前主要分为http和https两种协议,其中https类型的网站都是通过ssl协议+http协议的,是目前最安全的网站协议,访问此类网站的时候,会走ssl协议,验证访问者的证书,检测是否安全。
通过curl访问此类网站也是如此流程,但是curl中需要添加相应的参数,绕过ssl证书的验证,才可以正常访问,如出现此错误的一般原因是没有加此参数。
CURLOPT_SSL_VERIFYHOST的值
设为0表示不检查证书
设为1表示检查证书中是否有CN(common name)字段
设为2表示在1的基础上校验当前的域名是否与CN匹配。
二、解决方案
如果出现:
PHP Notice: curl_setopt():
CURLOPT_SSL_VERIFYHOST with value 1 is deprecated and will be removed as of libcurl 7.28.1. It is recommended to use value 2 instead in
一般原因是你设置了 curl_setopt ( $curl_handle, CURLOPT_SSL_VERIFYHOST, true );
改成curl_setopt ( $curl_handle, CURLOPT_SSL_VERIFYHOST, 2 );就行了。
PHP其他原因错误:
1、错误现象
在用curl进行模拟调用时,curl接收内容会出现"Empty reply from server" 和 "Recv failure: Connection was reset"的错误。
2、解决方案
经过对apache的error_log进行跟踪,出现错误"Connection reset by peer: core_output_filter: writing data to the network"
修改httpd.conf,在虚拟主机上添加如下内容:
EnableSendfile off
EnableMMAP off
修改后"Empty reply from server"错误消失。
‘贰’ 怎么让php打印错误日志
(1)使用echo ,简单输出
(2)使用print_r(),可以有规则的打印复杂结构
(3)var_mp递归输出某种结构体
(4)print(),简单打印
可以将你要输出的错误内容放到上述语句或函数内进行打印输出;也可以写入某个文件,作为你的Log日志:file_put_contents('/test1.txt',$value['value'],FILE_APPEND)等这类文件函数
以上是我自己工作中总结的PHP调试方法,挺好用的。
‘叁’ PHP没有错误提示
PHP没有错误提示是设置错误造成的,解决方法为;
1、确认了PHP的配置文件的路径之后,在文本编辑器打开该文件。
‘肆’ 在php中,try{}catch(Exception $e){} 那个$e是什么意思
$e是Exception(异常) new出来的对象,包含Exception类中的所有属性方法,所以你才可以在catch中写$e->getMessage()这样的语句来打印异常信息,纯手工制作,希望对你有帮!望采纳哈!嘿嘿
‘伍’ 我使用php语言做word转pdf的时候报错
解决方法:
在把Word转换成Pdf过程中,首先是选择文件---打印---然后在打印机下拉框中选择“Pdf打印机”,然后选择确定,此时,选择保存位置,然后确定后Pdf打印做准备。
如果使用了系统字体以外的字体时,Pdf虚拟打印机就会报错提示,为你指出哪页哪页未能转换等等的错误信息,这些信息是在txt文本中呈现的。
下边来看看解决的办法,首先找到系统中“设备和打印机”的位置
点击“设备和打印机”进入设备和打印机界面。
在设备和打印机界面找到“Adobe PDF”虚拟打印机,然后点击右键,选择“打印首选项”。
在弹出的“Adobe PDF打印首选项”对话框中,取消“仅依靠系统字体;不使用文档字体”复选框,然后点击应用退出就OK了
‘陆’ 网页设计<php echo("<php") >怎么会报错
(1)如果你是用eval运行这条语句的话,那PHP肯定会报错。你把前面和后面的<?php和?>去掉,后面加分号就行了。
(2)如果你输出<?php这个字符串,那么浏览器会报错(但不会把错误信息显示出来),因为浏览器无法识别<?php,它只能识别<?xml,所以,你应该这样:
<?php
echohtmlspecialchars('<?php');
//这与单引号或双引号无关,只不过单引号要运行起来快一些
?>
这样就可以了。