首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

在PHP中使用curl_multi_exec多线程并发抓取数据

使用curl_multi_exec并发请求外部接口 有时候在一个PHP方法中要多次调用外部的接口,为了优化代码,提高效率,我们不妨使用curl_multi_exec并发处理多个请求,这样可以明显地提高获取响应数据的速度,减少程序执行的时间,下面是一个实际运行的例子。 <?php /** * 使用curl并行发送多个请求获取数据 * @param array $urls 多个请求数组 * @return array */ function sendMultiRequest(array $urls) { $conn = []; $res = []; //创建批处理curl句柄 $mh = curl_multi_init(); foreach ($urls as $k => $item) { $conn[$k] = curl_init(); //初始化各个子连接 //...
类别:网页编程 - PHP技术    查看:74    更新:2024-08-05

PHP中curl_errno对应信息中文版

$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://xxxxx.xxx');//使用一个不存在的地址 curl_exec($ch); 此时会返回一个错误码:curl_errno($ch) 对应的使用$errlist[curl_errno($ch)]就能返回中文的错误说明 $errlist = array( '1'=>'CURLE_UNSUPPORTED_PROTOCOL (1) – 您传送给 libcurl 的网址使用了此 libcurl 不支持的协议。 可能是您没有使用的编译时选项造成了这种情况(可能是协议字符串拼写有误,或没有指定协议 libcurl 代码)。', '2'=>'CURLE_FAILED_INIT (2) – 非常早期的初始化代码失败。 可能是内部错误或问题。', '3'=>'CURLE...
类别:网页编程 - PHP技术    查看:127    更新:2024-08-01

利用php curl实现多进程下载文件类

批量下载文件一般使用循环的方式,逐一执行下载。但在带宽与服务器性能允许的情况下,使用多进程进行下载可以大大提高下载的效率。本文介绍php利用curl的多进程请求方法,实现多进程同时下载文件。 原理:使用curl的批处理方法,开启多进程,实现批量下载文件。 主要方法: curl_multi_init 返回一个新cURL批处理句柄 curl_multi_add_handle 向curl批处理会话中添加单独的curl句柄 curl_multi_exec 运行当前 cURL 句柄的子连接 curl_multi_getcontent 如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流 curl_multi_remove_handle 移除curl批处理句柄资源中的某个句柄资源 cu...
类别:网页编程 - PHP技术    查看:195    更新:2023-07-17

php curl使用方法

try { $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设置是否将响应结果存入变量,1是存入,0是直接echo curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);//在发起连接前等待的时间,如果设置为0,则无限等待。 curl_setopt($ch, CURLOPT_TIMEOUT, 15);//允许执行的最长秒数。 curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);//伪造浏览器头信息 curl_setopt($ch, CURLOPT_REFERER,$_REFERER);//伪造来源页面 curl_setopt($ch, CURLOPT_URL, $url); $htmlSource = curl_exec($ch); //$h...
类别:网页编程 - PHP技术    查看:112    更新:2021-11-07

跨站抓取别的站点的页面之CURL

在实际的应用中,经常会遇到一些特殊的情况,比如需要新闻,天气预报,等等,但是作为个人站点或者实力小的站点 我们不可能有那么多的人力 物力 财力去做这些事情,怎么办呢? 好在互联网是 资源共享的,我们可以利用程序 自动的把别的站点的页面抓取回来经过处理后被我们所利用。 用什么呢,那个战友给的是不行的,其实在Php有这个功能,那就是用curl库。请看下面的代码! <?php $ch = curl_init ("http://dailynews.sina.com.cn"); $fp = fopen ("php_homepage.txt", "w"); curl_setopt ($ch, CURLOPT_FILE, $fp); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_exec...
类别:网页编程 - PHP技术    查看:115    更新:2014-05-19

PHP使用curl采集

从朋友那拿到一份代码,用CURL模拟用户登录并采集需要用户登录的页面的。 先在本机测试,在php.ini中去掉了extension=php_curl.dll前面的;,查看一下phpinfo(),并没有curl。 查了下文档:将libeay32.dll 和ssleay32.dll复制到system32下,重启apache,刷新phpinfo(),看到了curl。 以下是PHP代码:【复制代码】 <?php $cookie_jar = tempnam('./tmp','cookie'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,'登陆地址'); curl_setopt($ch, CURLOPT_POST, 1); $request = 'username=xxx&pwd=xxx'; curl_setopt($ch, CURLOPT_POSTFIELDS, $request);//传递数据 curl_set...
类别:网页编程 - PHP技术    查看:122    更新:2014-05-19

PHP中curl的使用说明

bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。 下列选项的值将被作为长整形使用(在option参数中指定):  *CURLOPT_INFILESIZE: 当你上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小。 *CURLOPT_VERBOSE: 如果你想CURL报告每一件意外的事情,设置这个选项为一个非零值。 *CURLOPT_HEADER: 如果你想把一个头包含在输出中,设置这个选项为一个非零值。 *CURLOPT_NOPROGRESS: 如果你不会PHP为CURL传输显示一个进程条,设置这个选项为一...
类别:网页编程 - PHP技术    查看:126    更新:2014-05-19

PHP CURL 发送和接收XML数据

<?$xml = file_get_contents('1.xml');$header[]="Content-Type: text/xml; charset=utf-8";$header[]="User-Agent: Apache/1.3.26 (Unix)";$header[]="Host: 127.0.0.1";$header[]="Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2";$header[]="Connection: keep-alive";$header[]="Content-Length: ".strlen($xml);$url = "http://{$_SERVER['HTTP_HOST']}".dirname($_SERVER['PHP_SELF']).'/response.php';$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT...
类别:网页编程 - PHP技术    查看:356    更新:2014-05-08

PHP扩展curl和正则表达式采集新闻

采集已经不是什么新名词了,很多站长为了省事,也局限于人力的缺乏,使用程序来给自己的网站添砖加瓦,比如本人的个人网站www.xxfsw.com也采集了大量的新闻,那么如果实现呢?今天我们运用php来实现这个功能。 谈到采集,我们不得不说两个东西,第一个是如何获取远程网站的源代码,这个可以通过php的一个扩展curl来获取,另一个是如果去匹配你需要的信息,这个的解决办法是正则表达式。 Windows下开启curl的方法如下: 1、拷贝PHP目录中的libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll文件到 system32 目录。 2、修改php.ini:配置好 extension_dir ,去掉 extension = php_curl.dll 前面的分号。 3、重起apache。 Linux下开启c...
类别:网页编程 - PHP技术    查看:130    更新:2014-05-05