2013-11-26 4 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.' всегда. Таким образом, не существует возможности для рассмотрения такого запроса непосредственно в приведенном выше случае, правильно? Как добавить 'http: //' перед URL-адресом, если нет? – 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 надеюсь, что это поможет.

Смежные вопросы