使用file_get_contents来解析网页数据

时间:2013-11-26 05:37:39

标签: php

我使用` PHP function. But problem with this is it gives error when url starts from www。

解析网页数据
( ! ) 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;

?>

4 个答案:

答案 0 :(得分: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;  
?>

答案 1 :(得分:1)

您需要使用该协议。 PHP不会采用协议。

如果您不控制这些字符串,请在输入验证时检查协议。如果它们不存在,则添加http://

答案 2 :(得分:1)

Facebook可能想要一个用户代理,请参阅PHP file_get_contents() and headers

使用正则表达式验证网址,请参阅PHP validation/regex for URL

或者这可能对你的情况更好:

How to add http:// if it's not exists in the URL?

答案 3 :(得分:0)

你可以简单地检查一下,网址是以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希望这会有所帮助。