2010-12-15 48 views
1

代碼:如何從cURL輸出中提取和分配數據?

function GetCurlPage ($pageSpec) 
{ 
$ch = curl_init($pageSpec); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
$tmp = curl_exec ($ch); 
curl_close ($ch); 
$tmp = preg_replace('/(?s)<meta http-equiv="Expires"[^>]*>/i', '', $tmp); 
return $tmp; 
} 

$url = "https://www.domain.com/check.php?domain=" . 
$domain . "&suffixes=" . $suffixes . "&fuzzysearch=" . $fuzzysearch; 
$output = GetCurlPage("$url"); 

print $output; 

它輸出3行HTML的,但是我想一個變量分配給每一行,然後用它做什麼...

即:

if ($line_1_of_output=="Hi") 
{ 
"do something" 
} 

if ($line_2_of_output=="Hi") 
{ 
"do something else" 
} 

如何以XML輸出它自己的變量中的每一行?如果這是解決它的最佳方式?

謝謝!

回答

2

除非我誤解你,你可以爆炸cURL的輸出,然後遍歷數組。

<?php 
// cURL code... 
$tmp = explode("<br>", $tmp); 

foreach ($tmp AS $lnum => $line) { 
    var_dump($line); 
    echo '<br>'; 
}


試試這個:

function GetCurlPage ($pageSpec) 
{ 
    $ch = curl_init($pageSpec); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    $tmp = curl_exec ($ch); 
    curl_close ($ch); 
    $tmp = preg_replace('/(?s)<meta http-equiv="Expires"[^>]*>/i', '', $tmp); 
    $tmp = explode('<br>', $tmp); 

    // Test the array. 
    foreach ($tmp AS $line) { 
    echo '<pre>'; 
    print_r($line); 
    echo '</pre>'; 
    } 

    // Do something with each line. 
    $tmp[0] = str_replace('foo', 'bar', $tmp[0]); 
    $tmp[1] = str_replace('animal', 'monkey', $tmp[1]); 
    $tmp[2] = str_replace('cat', 'dog', $tmp[2]); 

    return $tmp; 
}
+0

所以意志輸出中每一行成3個獨立的變量,然後我就可以做if語句上的檢查? – iCeR 2010-12-15 16:53:39

+0

一旦你爆炸了\ n,每行都是$ tmp中的單獨元素(例如$ tmp [0],$ tmp [1],$ tmp [2]) – simshaun 2010-12-15 16:56:12

+0

好吧我試過測試tmp數組的輸​​出。 foreach($ tmp AS $ lnum => $ line){ echo $ tmp [0]; } 沒有輸出:/ – iCeR 2010-12-15 17:07:54