PHPカール

WBOY
リリース: 2016-06-23 14:37:23
オリジナル
982 人が閲覧しました

curl は php の非常に強力な関数であると言えます。すべての php プログラマーは、curl を使用する前に php_curl 拡張機能がオンになっていることを確認してください。

1.curl の使用

例: Shenzhen Zhaopin Recruitment の PHP 採用情報の最初のページの情報を収集します

$url='http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E6%B7%B1%E5%9C%B3&kw=php&sm=0&p=1';//初始化$ch = curl_init();//设置选项,包括URLcurl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不自动输出内容curl_setopt($ch, CURLOPT_HEADER, 0);//不返回头部信息//执行curl$output = curl_exec($ch);//错误提示if(curl_exec($ch) === false){    die(curl_error($ch));}//释放curl句柄curl_close($ch);header('Content-type: text/html; charset=utf-8');echo $output;
ログイン後にコピー

もちろん、返された情報を処理するには <<正規表現>> を使用する必要があります。 data 、必要な部分を見つけて、必要に応じて Web サイトにデータを入力します

//职位名称preg_match_all('/<td class="Jobname">.*?<a\s*href="(.*?)"\starget="_blank">(.*?)<\/a>/s', $output, $title);$title[1];//链接$title[2];//标题//公司名称preg_match_all('/<td class="Companyname">.*?<a href="(.*?)"\starget="_blank">(.*?)<\/a>/s', $output, $company);$company[1];//链接$company[2];//名字//工作地点preg_match_all('/<td class="Companyaddress">\s*(.*?)\s*<\/td>/s', $output, $address);$address[1];//地点//发布日期preg_match_all('/<td class="releasetime">\s*(.*?)\s*<\/td>/s', $output, $time);$time[1];//时间var_dump($time[1]);
ログイン後にコピー

2. よく使用される関数

Curl の核心は、さまざまなオプションを設定することでさまざまな機能を実現することです。よく使用されるオプションをいくつか紹介します。

1.投稿データ

$post=array('uid'=>'test','pwd'=>'curl123');curl_setopt($ch, CURLOPT_POST, 1);//设置为POST方式curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));//POST数据
ログイン後にコピー

2.cookie

$savefile=dirname(__FILE__).'save.txt';$getfile=dirname(__FILE__).'get.txt';//可以分开使用curl_setopt($ch, CURLOPT_COOKIEJAR, $savefile); //保存  curl_setopt($ch, CURLOPT_COOKIEFILE, $getfile); //读取 
ログイン後にコピー

3.Fake IP、origin

curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8'));//构造IP  curl_setopt($ch, CURLOPT_REFERER, "http://www.baidu.com");//构造来路  
ログイン後にコピー

curl_setopt オプション、詳細については、PHP マニュアルを参照してください: http://www.php.net/manual /zh/function.curl-setopt.php

3. マルチスレッド

公式サンプル

// 创建一对cURL资源$ch1 = curl_init();$ch2 = curl_init();// 设置URL和相应的选项curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");curl_setopt($ch1, CURLOPT_HEADER, 0);curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");curl_setopt($ch2, CURLOPT_HEADER, 0);// 创建批处理cURL句柄$mh = curl_multi_init();// 增加2个句柄curl_multi_add_handle($mh,$ch1);curl_multi_add_handle($mh,$ch2);$running=null;// 执行批处理句柄do {    usleep(10000);    curl_multi_exec($mh,$running);} while ($running > 0);// 关闭全部句柄curl_multi_remove_handle($mh, $ch1);curl_multi_remove_handle($mh, $ch2);curl_multi_close($mh);
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!