好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

phpcurl抛出异常 phpcurlpost请求

很多站长朋友们都不太清楚phpcurl抛出异常,今天小编就来给大家整理phpcurl抛出异常,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php curl失败 2、 php curl 本地测试可用,线上测试报错 3、 php编译curl出错,紧急求助高手门 4、 PHP的curl模拟·登录老是失败出现了405错误 5、 php curl常见错误:SSL错误、bool(false) 6、 PHP Curl出现403错误怎么办 php curl失败

curl_setopt($ch, CURLINFO_HEADER_OUT, true);

然后吧curl_getinfo($ch)发出来我看看

php curl 本地测试可用,线上测试报错

<?php

/*****************************************************

程序名称: curl使用测试

程序说明: 股票页面信息获取

编写时间: 2011年2月12日

编写人员: 童童

修改时间:

修改人员: 童童

备 注:

****************************************************/

$GPNumber = '000877';

$curlPost = 'gpdm=' . urlencode($GPNumber);

//初始化

$ch = curl_init();

//设置选项(直接设置或者通过数组设置)

//直接设置

//设置你需要抓取的URL

curl_setopt($ch, CURLOPT_URL, "");

//通过数组设置

/*

$options = array(

CURLOPT_URL => '',

CURLOPT_HEADER => false

);

curl_setopt_array($ch, $options);

*/

// 设置header

curl_setopt($ch, CURLOPT_HEADER, 1);

// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//设置使用POST方式

curl_setopt($ch, CURLOPT_POST, 1);

//设置POST数据

curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);

//执行并获取HTML文档内容

$str = curl_exec($ch);

//转换编码

$str = mb_convert_encoding($str, "utf-8", "gb2312");

//$str = mb_convert_encoding($str, "gb2312", "utf-8");

//ini_set('max_execution_time', '180');

set_time_limit(1800);

//处理内容

$str1 = "/<tr[^<]*<td[^<]*>(?<value1>.*?)<//td>[^<]*<td[^<]*>(?<value2>.*?)<//td>[^<]*<td[^<]*>(?<value3>.*?)<//td>[^<]*<td[^<]*>(?<value4>.*?)//<br//>[//s//S]*//<//a//><//td>[^<]*<td[^<]*>(?<value5>.*?)<//td>[^<]*<td[^<]*>(?<value6>.*?)<//td>[^<]*<td[^<]*>(?<value7>.*?)<//td>[^<]*<td[^<]*>(?<value8>.*?)<//td>[^<]*<td[^<]*>(?<value9>.*?)<//td>[^<]*<td[^<]*>(?<value10>.*?)<//td>[^<]*<td[^<]*>(?<value11>.*?)<//td>[^<]*<td[^<]*>(?<value12>.*?)<//td>[^<]*<td[^<]*>(?<value13>.*?)<//td>[^<]*<td[^<]*>(?<value14>.*?)<//td>[^<]*<td[^<]*>(?<value15>.*?)<//td>[^<]*<td[^<]*>(?<value16>.*?)<//td>[^<]*<td[^<]*>(?<value17>.*?)<//td>[^<]*<td[^<]*>(?<value18>.*?)<//td>[^<]*<td[^<]*>(?<value19>.*?)<//td>[^<]*<td[^<]*>(?<value20>.*?)<//td>[^<]*<td[^<]*>(?<value21>.*?)<//td>[^<]*<td[^<]*>(?<value22>.*?)<//td>[^<]*<td[^<]*>(?<value23>.*?)<//td>[^<]*<td[^<]*>(?<value24>.*?)<//td>[^<]*<td[^<]*>(?<value25>.*?)<//td>[^<]*<td[^<]*>(?<value26>.*?)<//td>[^<]*<td[^<]*>(?<value27>.*?)<//td>[^<]*<td[^<]*>(?<value28>.*?)<//td>[^<]*<td[^<]*>(?<value29>.*?)<//td>[^<]*<td[^<]*>(?<value30>.*?)<//td>[^<]*<td[^<]*>(?<value31>.*?)<//td>[^<]*<td[^<]*>(?<value32>.*?)<//td>[^<]*<td[^<]*>(?<value33>.*?)<//td>[^<]*<td[^<]*>(?<value34>.*?)<//td>[^<]*<td[^<]*>(?<value35>.*?)<//td>[^<]*<td[^<]*>(?<value36>.*?)<//td>[^<]*<td[^<]*>(?<value37>.*?)<//td>[^<]*<td[^<]*>(?<value38>.*?)<//td>[^<]*<td[^<]*>(?<value39>.*?)<//td>[^<]*<td[^<]*>(?<value40>.*?)<//td>[^<]*<td[^<]*>(?<value41>.*?)<//td>[^<]*<td[^<]*>(?<value42>.*?)<//td>[^<]*<td[^<]*>(?<value43>.*?)<//td>[^<]*<td[^<]*>(?<value44>.*?)<//td>[^<]*<td[^<]*>(?<value45>.*?)<//td>[^<]*<td[^<]*>(?<value46>.*?)<//td>[^<]*<td[^<]*>(?<value47>.*?)<//td>[^<]*<td[^<]*>(?<value48>.*?)<//td>[^<]*<td[^<]*>(?<value49>.*?)<//td>[^<]*<//tr>/";

$str2 = "<tr bgcolor='#EDEDED' height='20'><td>2011年2月11日</td><td>16:12</td><td>000877</td><td class=tdred>天山股份 <br><a target='_blank' href="" mce_href="">分时ddx</a> <a target='_blank' href="" mce_href="">点评</a> <a target='_blank' href="" mce_href="">新闻</a> <a target='_blank' href="gpdmyd.asp?gpdm=000877" mce_href="gpdmyd.asp?gpdm=000877">异动</a> <a target='_blank' href="" mce_href="">股东</a></td><td>33.81</td><td class=tdred>6.42</td><td class=tdred>0.241</td><td>0.287</td><td>16.748</td> <td class=tdbgred>2468</td> <td class=tdred>1251</td> <td class=tdred>1217</td> <td class=tdred>-676</td> <td class=tdred>-1792</td> <td class=tdbgred>8.76</td><td class=tdred>17.28</td><td class=tdred>7.3</td><td>0.414</td><td>0.396</td><td>0.053</td><td>-2.067</td><td>7</td><td>2</td><td class=tdred>3.7</td><td>3.6</td><td>-2.0</td><td class=tdred>-5.3</td><td>107</td><td>1.19</td><td class=tdred>-5401</td><td>131</td><td>7119</td><td>8479</td><td>14.3</td><td>12.0</td><td>-1792</td><td>2468</td><td>6.0</td><td>2.3</td><td>51.1</td><td>47.5</td><td>18.5</td><td>20.5</td><td>24.4</td><td>29.7</td><td>3.30</td><td>1.85</td><td>18.74③</td><td>1.353</td></tr>";

echo preg_match_all($str1,$str,$strs);

/*

foreach ($strs as $row)

{

echo mb_convert_encoding($row, "utf-8", "gb2312")."</br>";

}

*/

/*

if ($output === FALSE) {

echo "cURL Error: " . curl_error($ch);

}

*/

//var_dump($str);

//释放curl句柄

curl_close($ch);

?>

php编译curl出错,紧急求助高手门

输入phpinfo() 看curl扩展是否启用,没有启用的话需要启用才可以使用curl功能。

启用方法:

WINDOWS:找到正在使用的PHP.INI文件 去掉;extension=php_curl.dll 前面的;

Linux : 重新编译PHP ,–with-curl=/usr/local/curl 其中/usr/local/curl安装的curl的目录

PHP的curl模拟·登录老是失败出现了405错误

405 是指请求的 URL 不支持请求的方法, htm(除伪静态)是静态页面,是只能使用 get 方法的,而你要登录,要用post,而你这里也确实是用的 post,那么我觉得你应该是 URL 取错了。像这种 post 的地址都要是有程序处理的,你再回去看看原来页面中 form 上的 action 地址吧

php curl常见错误:SSL错误、bool(false)

排查方法: 在命令行中使用curl调用试试。

原因: 服务器所在机房无法验证SSL证书。

解决办法: 跳过SSL证书检查。

排查方法:

返回:

再排查:

返回:

HTTP/1.1 100 Continue

Connection: close

原因 :php curl接收到HTTP 100就结束了,应该继续接收HTTP 200

解决方案:

PHP Curl出现403错误怎么办

使用curl抓网页下来处理,为了穿墙方便,使用Privoxy作为代理,便于选择哪些网站使用proxy、哪些不用。但今天却遇到了奇怪的问题,访问google?baidu这些网站居然都返回403错误,而访问其他的一些网站没事,如果设置为不使用proxy则都能正常访问。

难道google?baidu就不让用proxy连接么?显然不可能,所以打开curl的信息输出(curl_setopt($this->mSh,?CURLOPT_VERBOSE,?1);)看看,得到以下结果:

.?代码如下:

*???Trying?127.0.0.1...?*?connected

*?Connected?to?127.0.0.1?(127.0.0.1)?port?8118?(#0)

*?Establish?HTTP?proxy?tunnel?to?

>?CONNECT??HTTP/1.0

Host:?

User-Agent:?Mozilla/4.0?(compatible;?MSIE?6.0;?Windows?NT?5.1;?SV1)

Proxy-Connection:?Keep-Alive

<?HTTP/1.0?403?Connection?not?allowable

<?X-Hint:?If?you?read?this?message?interactively,?then?you?know?why?this?happens?,-)

<?

*?The?requested?URL?returned?error:?403

*?Received?HTTP?code?403?from?proxy?after?CONNECT

*?Closing?connection?#0

...?Failed.

可以看到proxy服务器工作正常,的确是baidu返回了403错误,但原因肯定还在我这边。终于,从网上(1of2,?2of2)得到了点启发──我使用的是proxytunnel而非proxy。

在代码中,有这么一句:

.?代码如下:

?curl_setopt($this->mSh,?CURLOPT_HTTPPROXYTUNNEL,?true);

?curl_setopt($this->mSh,?CURLOPT_PROXY,?$phost);

php文档中没有详细说明,不过man?curl中有详细解释,两者都是代理,proxytunnel(-p参数)允许其他协议通过http代理传输,而proxy(-x参数)则只能走http协议。所以我猜测,google?baidu的服务器和curl的proxytunnel不和,所以返回403。

禁用掉上面2行代码的第一句后,curl访问恢复正常。

比较奇怪的是,几种操作系统下还不一样,一台MAC?OSX就要显式的禁用proxytunnel才可以,curl版本:

.?代码如下:

$?curl?--version

curl?7.16.3?(powerpc-apple-darwin9.0)?libcurl/7.16.3?OpenSSL/0.9.7l?zlib/1.2.3

Protocols:?tftp?ftp?telnet?dict?ldap?http?file?https?ftps?

Features:?GSS-Negotiate?IPv6?Largefile?NTLM?SSL?libz

而另外一台ubuntu则完全不受影响,怎么都能用,curl版本:

.?代码如下:

$?curl?--version

curl?7.18.2?(i486-pc-linux-gnu)?libcurl/7.18.2?OpenSSL/0.9.8g?zlib/1.2.3.3?libidn/1.10

Protocols:?tftp?ftp?telnet?dict?ldap?ldaps?http?file?https?ftps?

Features:?GSS-Negotiate?IDN?IPv6?Largefile?NTLM?SSL?libz

MT主机上的centos也没事,curl版本:

.?代码如下:

$?curl?--version

curl?7.15.5?(i686-redhat-linux-gnu)?libcurl/7.15.5?OpenSSL/0.9.8b?zlib/1.2.3?libidn/0.6.5

Protocols:?tftp?ftp?telnet?dict?ldap?http?file?https?ftps?

Features:?GSS-Negotiate?IDN?IPv6?Largefile?NTLM?SSL?libz

看来不完全是curl版本问题,MAC?OSX的确与众不同啊。

还有一个原因也会导致curl返回403错误,如果设置了:

.?代码如下:

?curl_setopt($ch,?CURLOPT_NOBODY,?true);

则需要紧跟着设置:

.?代码如下:

?curl_setopt($ch,?CURLOPT_CUSTOMREQUEST,?'GET');

不然会因为http服务器不允许?HEAD?命令而返回403错误。参考:Trouble?with?a?cURL?request?in?PHP(forums.devshed测试数据/php-development-5/trouble-with-a-curl-request-in-php-445222.html)。MAC?OSX上curl之所以特殊,也不排除是这种原因

关于phpcurl抛出异常的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于phpcurl抛出异常 phpcurlpost请求的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did195824
更新时间:2023-04-26   阅读:25次

上一篇: 购物商城php项目 php购物商城源码

下一篇:phpwhile计次 php 计算

最新资料更新

  • 1.输出jsonphp代码 js 输出json
  • 2.php技术网学习 php技术门户
  • 3.php配置外网访问 phpstudy外网映射
  • 4.红帽升级php 红帽linux最新版
  • 5.php语言怎么玩 php语言入门
  • 6.名称占位符php 占位符html
  • 7.php解压gz效率 rarphp文件怎么解压
  • 8.php微信推送提醒 php主动推送消息到安卓
  • 9.php中文变量问号 php变量使用
  • 10.php提取css文件 php引用css文件
  • 11.主流php框架比较 php框架排行2020
  • 12.php时间戳转换字符串 php 时间戳转日期
  • 13.包含php-fpm-t的词条
  • 14.PHP版本在哪调 phpversion
  • 15.php前端页面源码 php前端页面源码是多少
  • 16.php判断多个数字 php判断字符串是否为数字
  • 17.php大数据算法 php如何处理大数据
  • 18.包含tracphp的词条
  • 19.php声明字符串 在php中声明变量应使用什么符号
  • 20.php浏览页面乱码 php页面字符出现乱码怎么解决

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]