2012-09-18 62 views
1

我有這樣的代碼,我想了這樣的10捲曲連接多,但我不知道該如何與這個特定代碼:轉換這個捲曲多PHP

什麼代碼呢?

  1. 使捲曲requiest到.asp頁

  2. 採用結果的形式($城)發送一些數據後,頁面得到這個提交併進行內部請求,並顯示一個結果。

  3. 輸出最後的結果。

    function curl($header,$encoded,$cookie){ 
        $options = array(
        CURLOPT_USERAGENT  => $_SERVER['HTTP_USER_AGENT'], 
        CURLOPT_TIMEOUT   => 120,  
        //CURLOPT_REFERER   => '', 
        //CURLOPT_HTTPHEADER  => $header, 
        CURLOPT_COOKIE   => $cookie, 
        CURLOPT_POST   => true, 
        CURLOPT_POSTFIELDS  => $encoded, 
        CURLOPT_RETURNTRANSFER => true,  
        CURLOPT_HEADER   => false,  
        CURLOPT_FOLLOWLOCATION => true,  
    ); 
        $ch = curl_init("http://procesos.ramajudicial.gov.co/consultaprocesos/consultap.aspx"); 
        curl_setopt_array($ch, $options); 
        $output = curl_exec($ch); 
        curl_close($ch); 
        return $output; 
    } 
    
    $cookie = ""; 
    foreach($_COOKIE as $k => $v) 
        $cookie .= $k."=".$v.";"; 
        $cookie = substr($cookie,0,strlen($cookie)-1); 
    
        $encoded = ''; 
        foreach($_POST as $name => $value) { 
        $encoded .= urlencode($name).'='.urlencode($value).'&'; 
        } 
    
        $lk = "http://procesos.ramajudicial.gov.co/consultaprocesos/"; 
    
        $header[] = 'User-Agent: '.$_SERVER['HTTP_USER_AGENT']; 
        $header[] = 'Accept: text/xml,application/xml,application/xhtml+xml,text /html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'; 
        $header[] = 'Accept-Language: en-us,en;q=0.5'; 
        $header[] = 'Accept-Encoding: gzip,deflate'; 
        $header[] = 'Connection: keep-alive'; 
        $header[] = 'Cookie : '.$cookie; 
        $header[] = 'Content-Type: application/x-www-form-urlencoded'; 
    
        $output = curl($header,$encoded,$cookie); 
    
        $CIUDAD = urlencode("Medellin"); // to change 
        $CORPORACION = urlencode("JUZGADOS CIVILES MUNICIPALES DE MEDELLIN"); // to change 
        $DIGITOS = $numsus; 
    
        // BEGIN STEP 1 
        $__VIEWSTATE = 'id="__VIEWSTATE" value="'; 
        $i = stripos($output,$__VIEWSTATE) + strlen($__VIEWSTATE); 
        $j = stripos($output,'"',$i); 
        $__VIEWSTATE = substr($output,$i,$j-$i); 
    
        $__EVENTVALIDATION = 'id="__EVENTVALIDATION" value="'; 
        $i = stripos($output,$__EVENTVALIDATION) + strlen($__EVENTVALIDATION); 
        $j = stripos($output,'"',$i); 
        $__EVENTVALIDATION = substr($output,$i,$j-$i); 
    
        $encoded = '__EVENTTARGET=DropDownList1&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE='.urlencode($__VIEWSTATE).'&__EVENTVALIDATION='.urlencode($__EVENTVALIDATION).'&DropDownList1='.$CIUDAD.'&TextBox13='; 
    
        $output = curl($header,$encoded,$cookie); 
    
+0

您的功能無法閱讀。請格式化 –

+0

完成!爲什麼stackoverflow沒有和php標籤添加代碼?哦!。 – JuanFernandoz

+0

不是PHP標籤,但它有一個代碼按鈕。或者你只需​​將你的代碼縮進四個空格 –

回答

2

這將是很好,如果你可以使用任何方式最適合你只是有十個線程的file_get_contents最有可能...

https://github.com/krakjoe/pthreads

你可以有主題:)

享受..

0

多捲曲有時很難在第一把握,可我熱烈建議簽出皮特督導員PHP https://github.com/petewarden/ParallelCurl實施。這取消了抽象。

你基本上需要實現一個回調函數來在下載完成時觸發。例如,寫入臨時目錄,當完成所有工作時,主程序可以檢查內容並從中進行處理。