2013-11-26 69 views
0

我使用` PHP function. But problem with this is it gives error when url starts from www.`使用的file_get_contents解析網頁數據

(!) Warning: file_get_contents(www.iiit.ac.in): failed to open stream: No such file or directory in F:\wamp\www\test.php on line 63 

這裏解析網頁數據是該代碼演示:Link to DEMO

<?php 
$url= 'www.facebook.com'; 
$data = file_get_contents($url); 
echo $data; 

echo "<br/>Using http"; 

$url= 'https://www.facebook.com'; 
$data = file_get_contents($url); 
echo $data; 

?> 

回答

1

您需要使用的協議。 PHP不會承擔協議。

如果您不控制這些字符串,請在輸入驗證時檢查協議。要麼,要麼添加http://,如果它們不存在。

+0

謝謝!但我們無法控制用戶。他們總是用'www.'查詢。所以在上面的例子中沒有直接處理這樣的查詢的範圍,對嗎?如果不存在,如何在url之前追加'http://'? – user123

2

至於你的問題的解決方案,請嘗試執行以下替代源代碼片斷

<?php 
$url= 'http://www.facebook.com'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$result=curl_exec($ch); 
curl_close($ch); 
echo $result; 
?> 
+0

它給出錯誤' 致命錯誤:調用未定義的函數curl_init()在線3 'P.S. http://codepad.org/nXwKSnSn – user123

+0

請嘗試執行上面的代碼片段到您的本地服務器,並啓用curl擴展在php.ini –

0

你可以簡單地檢查一下url是以http://還是https://開頭的。

$url = 'www.facebok.com'; 
if (substr($url, 0, 7) !== 'http://' && substr($url, 0, 8) !== 'https://') { 
    $url = 'http://' . $url; 
} 
echo $url; 

上面會返回http://www.facebook.com希望這有助於。