導航:首頁 > 編程語言 > phpcurl循環

phpcurl循環

發布時間:2022-06-03 04:36:25

㈠ 打開php頁面後,自動循環 打開記事本中的網址,

function get_web_page( $url )
{
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page 返回網頁
CURLOPT_HEADER => false, // 不返回頭信息
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "spider", // 設置UserAgent
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect 連接超時
CURLOPT_TIMEOUT => 120, // timeout on response 回復超時
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}
此方法是在php中打開一網址的代碼;
首先你要用php代碼讀取記事本中的內容,然後將其分割為數組。每個數組為一個網址。循環數組調用get_web_page 方法。並答應出來get_web_page的結果。你說的30分鍾刷新一下,可以用js實現。延時30分鍾執行刷新頁面代碼。

㈡ PHP Curl進行POST操作,為何有2次重復的請求,我只執行了一次啊

告訴你兩個用於獲得curl錯誤報告的函數
curl_errno可以獲得錯誤碼,當然也包括錯誤的http狀態碼
curl_error可以獲得錯誤信息
具體用法參見php手冊。為了能得到正確的錯誤信息,使用這兩個函數之前請設定CURLOPT_FAILONERROR選項為true。

還要提醒你一點,注意curl_init是否執行成功

㈢ php循環語句 for與foreach用法區別介紹

具體代碼如下:
<?php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, 'http://www.domain.com/');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?>
​PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。
它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,
執行效率比完全生成HTML標記的CGI要高許多;
PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。

㈣ php cURL批處理有點不解

curl_multi_exec()是一個php內置函數,用於解析用的,就是把一個url進行解析的意思

㈤ php的curl和socket的區別

首先說下啥是socket:
PHP使用berkely的socket庫來創建他的連接,socket是一個數據結果,你可以通過這個socket來開啟伺服器和客戶端的會話。伺服器端一直處於監聽狀態,當一個客戶端連接伺服器,他就打開伺服器端正在監聽的一個埠進行會話。這時伺服器端接收客戶端的連接請求,那麼就進行一次循環。現在這個客戶端就能夠發送信息到伺服器,伺服器也可以發送信息給客戶端。
產生一個socket你一共需要三個變數:
1、一個協議
2、一個socket類型
3、一個公共協議類型
以下是對這三個變數的詳細解釋,大概了解下吧(但願你能記得住偷笑)
協議:產生一個socket有三個協議供選擇:
1、AF_INET 這個是使用比較廣泛的產生socket的協議,使用tcp或者udp協議傳輸,使用ipv4地址
2、AF_INET6 顯而易見哈,同上,不同的是使用ipv6地址
3、AF_UNIX 使用在unix或者linux機器上,這個很少使用,僅在伺服器端和客戶端均為unix或者linux系統上使用。
socket類型:
1、SOCK_STREAM 這個協議是按照順序的、可靠的、數據完整的基於位元組流的連接。這是一個使用最多的socket類型,這個socket是使用TCP來進行傳輸。
2、SOCK_DGRAM 這個協議是無連接的、固定長度的傳輸調用。該協議是不可靠的,使用UDP來進行它的連接。
3、SOCK_SEQPACKET 這個協議是雙線路的、可靠的連接,發送固定長度的數據包進行傳輸。必須把這個包完整的接受才能進行讀取。
4、SOCK_RAW 這個socket類型提供單一的網路訪問,這個socket類型使用ICMP公共協議。(ping、traceroute使用該協議)
5、SOCK_RDM 這個類型是很少使用的,在大部分的操作系統上沒有實現,它是提供給數據鏈路層使用,不保證數據包的順序
公共協議類型:
1、ICMP (Internet Control Message Protocol)互聯網控制報文協議,主要用在網關和主機上,用來檢測網路狀況和報告錯誤信息
2、TCP (Transmission Control Protocol) 傳輸控制協議,他是使用最廣泛的協議,他能夠保證數據包到達接收者那裡,如果中途出現錯誤,那麼此協議從新發送數據包。
3、UDP (User Datagram Protocol)用戶數據包協議,他是無連接的,不可靠的數據傳輸協議。
好啦,你現在知道了產生一個socke需要三個元素,那麼在php中socket_create()就需要三個參數,一個協議,一個socket類型,一個公共協議。如果創建成功,socket_create()返回一個socket資源類型,如果不成功,嘿嘿,那你會收到一個false.
CURL
cURL 是利用URL語法規定來傳輸文件和數據的工具。他支持HTTP、FTP、TELNET。
為啥要使用cURL呢?
因為,如果我們有時候想靈活的獲取網頁上的內容,例如處理coockies、驗證、表單提交、文件上傳等等等等。那麼你就需要用到cURL.據說php有著功能強大的cURL庫(因為偶也說不清強大在哪裡啦,所以用了「據說」大笑)。
php使用cURL的選項基本步驟如下:
1、初始化
2、參數設置
3、頁面內容獲取或者操作
4、釋放句柄
看看下面這個簡單的例子吧。
[php] view plain
<?php
//初始化curl
$ch = curl_init ();
/*
* 設置curl
* php手冊對於curl_setopt的解釋為:設置對於curl傳輸的操作
* curl_setopt有三個參數:資源(一般為你建立的curl句柄)、操作(你將對這個句柄作何操作)、參數(對於這個操作你給出的參數)
*/
//例如你想對網路進行某些操作
curl_setopt ( $ch, CURLOPT_URL, "http://www..com");
//現在看來你要向網路post數據
curl_setopt ( $ch, CURLOPT_POST, 1 );
/*給出了要post的數據:$post_string,post的數據可以是一個文件,
*那麼你需要以@加上文件的全路徑給出,或者你要post一些數據,
*那麼你可以按照數組形式給出,或者按照字元串給出,
*如果你想按照字元串形式給出,請把字元串urlencode,嘿嘿
*/
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_string );
/*
*把curl操作的結果以字元串形式 從curl_exec ()返回,而不是直接就輸出了
*/
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
//得到操作返回結果
$result = curl_exec ( $ch );
//關閉curl句柄
curl_close ( $ch );
?>
因為php的curl有很多操作,要都記住估計很困難,反正偶記不住啦,說些大家可能用的上的吧。大笑
獲取伺服器的一些信息
[php] view plain
<?php
//初始化curl
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, "http://www..com");
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
curl_exec($ch);
$info = curl_getinfo($ch);
var_mp($info);
?>
通過上面的例子,你將會獲得如下信息:
「url」 //資源網路地址
「content_type」 //內容編碼
「http_code」 //HTTP狀態碼
「header_size」 //header的大小
「request_size」 //請求的大小
「filetime」 //文件創建時間
「ssl_verify_result」 //SSL驗證結果
「redirect_count」 //跳轉技術
「total_time」 //總耗時
「namelookup_time」 //DNS查詢耗時
「connect_time」 //等待連接耗時
「pretransfer_time」 //傳輸前准備耗時
「size_upload」 //上傳數據的大小
「size_download」 //下載數據的大小
「speed_download」 //下載速度
「speed_upload」 //上傳速度
「download_content_length」//下載內容的長度
「upload_content_length」 //上傳內容的長度
「starttransfer_time」 //開始傳輸的時間
「redirect_time」//重定向耗時

㈥ curl命令在PHP中怎麼用

這是我項目中一直在用的一個方法

<?php
functioncurl($url,$params=array(),$header=array(),$timeout=180){
if(empty($url))return$url;

$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$url);//請求url地址

curl_setopt($curl,CURLOPT_HTTPHEADER,$header);//構造IP

if(!empty($params)&&count($params)>0){
curl_setopt($curl,CURLOPT_POST,true);

//RequestPayload格式數據
if(isset($params['is_json'])&&$params['is_json']===true){
unset($params['is_json']);
$params=json_encode($params);
}else{
$params=http_build_query($params);
}
curl_setopt($curl,CURLOPT_POSTFIELDS,$params);
}

//curl_setopt($curl,CURLOPT_HEADER,true);//是否返回響應頭信息
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);//是否將結果返回
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);//是否重定向
//curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.106Safari/537.36');
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);//只信任CA頒布的證書
//curl_setopt($curl,CURLOPT_CAINFO,$cacert);//CA根證書(用來驗證的網站證書是否是CA頒布)
//curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,2);//檢查證書中是否設置域名,並且是否與提供的主機名匹配
//從證書中檢查SSL加密演算法是否存在
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_0);
//curl_setopt($curl,CURLOPT_HTTPHEADER,array("Expect:"));
curl_setopt($curl,CURLOPT_IPRESOLVE,CURL_IPRESOLVE_V4);
curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,$timeout);//用來告訴PHP腳本在成功連接伺服器前等待多久(連接成功之後就會開始緩沖輸出),這個參數是為了應對目標伺服器的過載,下線,或者崩潰等可能狀況;
curl_setopt($curl,CURLOPT_TIMEOUT,$timeout);//用來告訴成功PHP腳本,從伺服器接收緩沖完成前需要等待多長時間。如果目標是個巨大的文件,生成內容速度過慢或者鏈路速度過慢,這個參數就會很有用。
//自動設置Referer
curl_setopt($curl,CURLOPT_AUTOREFERER,1);
//curl_setopt($curl,CURLOPT_COOKIEJAR,"D:phpStudyWWWcjcooBE66.tmp");////寫入cookie信息
//setcookie('cookie_jar',$cookie_jar);//保存cookie路徑
$data=curl_exec($curl);//執行
curl_close($curl);
return$data;
}
?>

㈦ php curl 大量數據採集

這個需要配合js,打開一個html頁面,首先js用ajax請求頁面,返回第一個頁面信息確定處理完畢(ajax有強制同步功能),ajax再訪問第二個頁面。(或者根據伺服器狀況,你可以同時提交幾個URL,跑幾個相同的頁面)
參數可以由js產生並傳遞url,php後台頁面根據URL抓頁面。然後ajax通過php,在資料庫或者是哪裡設一個標量,標明檢測到哪裡。由於前台的html頁面執行多少時候都沒問題,這樣php的內存限制和執行時間限制就解決了。
因為不會浪費大量的資源用一個頁面來跑一個瞬間500次的for循環了。(你的500次for循環死了原因可能是獲取的數據太多,大過了php限制的內存)
不過印象中curl好像也有強制同步的選項,就是等待一個抓取後再執行下一步。但是這個500次都是用一個頁面線程處理,也就是說肯定會遠遠大於30秒的默認執行時間。

閱讀全文

與phpcurl循環相關的資料

熱點內容
linuxoracle用戶密碼 瀏覽:757
股票交易pdf 瀏覽:898
p2papp源碼 瀏覽:308
記錄睡眠軟體app哪個好用 瀏覽:140
液壓助力車壓縮比 瀏覽:217
文件伺服器上如何查看 瀏覽:975
雪花繪制源碼 瀏覽:662
app主頁演示圖怎麼做 瀏覽:542
幼兒園設計pdf 瀏覽:645
干接點輸入單片機 瀏覽:541
亞馬遜雲伺服器查看 瀏覽:163
如何用免費雲伺服器 瀏覽:610
php的輸出命令 瀏覽:264
在家怎麼製作解壓小玩具 瀏覽:99
javascript源碼輔助閱讀 瀏覽:384
pythonui開發工具 瀏覽:595
adr指標源碼 瀏覽:217
程序員轉架構管理 瀏覽:959
企業伺服器為什麼不能被拷貝 瀏覽:119
用c編程實現txt搜索 瀏覽:854