2015-12-01 39 views
0

有人看下面的腳本,爲什麼不列出好奇的內容(< div> </div>),即使地址是正確的。捲曲 - 沒有列出我想知道的內容

<?php 
function get_content($url) 
{ 
    $ch = curl_init(); 

    curl_setopt ($ch, CURLOPT_URL, $url); 
    curl_setopt ($ch, CURLOPT_HEADER, 0); 

    ob_start(); 

    curl_exec ($ch); 
    curl_close ($ch); 
    $string = ob_get_contents(); 

    ob_end_clean(); 
    $divs = '/<div>(.+)<\/div>/U'; 
preg_match($divs, $string, $matches); 
$vysledek = $matches[1]; 
    var_dump($vysledek); 
    var_dump($url); 
} 
echo get_content ("http://www.azlyrics.com/lyrics/garthbrooks/midnightsun.html"); 
?> 

的var_dump我寫道: NULL 字符串(59) 「http://www.azlyrics.com/lyrics/garthbrooks/midnightsun.html

早些時候,我用:

function ziskatlyrics($url) 
{ 
    $content = file_get_contents($url); 
    $first_step = explode('<div>' , $content); 
    $second_step = explode("</div>" , $first_step[1]); 

    $obsah = strip_tags($second_step[0]); 
    return $obsah; 

} 
echo ziskatlyrics("http://www.azlyrics.com/lyrics/garthbrooks/midnightsun.html"); 

但它拋出我這個錯誤: 警告:的file_get_contents( http://www.azlyrics.com/...ightsun.html ):無法打開流:HTTP請求失敗!在

我可以做一些事情,使其功能再次? 謝謝你的回答。

回答

0

因爲你只是var_dump()「荷蘭國際集團的變量,而不是來自卷邊請求的響應...

var_dump($vysledek); 
var_dump($url); 

你想要的是分配給一個varaible捲曲響應並返回...

$response = curl_exec($ch); 
return $response; 

那麼......在你完成正在做的正則表達式之後,我假設你的$string是空的。

0

我不知道我很正確:

function get_content($url) 
{ 
    $ch = curl_init(); 

    curl_setopt ($ch, CURLOPT_URL, $url); 
    curl_setopt ($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_VERBOSE, true); 

    ob_start(); 

    curl_exec ($ch); 
    curl_close ($ch); 
    $string = curl_exec ($ch); 

    ob_end_clean(); 
    $divs = '/<div>(.+)<\/div>/U'; 
preg_match($divs, $string, $matches); 
$vysledek = $matches[1]; 
return $vysledek; 

} 
echo get_content ('http://www.azlyrics.com/lyrics/garthbrooks/midnightsun.html'); 

而結果:link