file_get_contents有时找不到文本

时间:2011-08-04 20:22:48

标签: php file-get-contents

我是PHP的新手,所以请保持友善:)

有时file_get_contents会完成它的工作,有时却不会。我已经在网页上构建了一个简单的URL检查(如果存在的话)。但问题是,即使URL存在肯定(手动检查源代码),file_get_contents和preg_match也找不到它。我无法弄清楚为什么。这是代码:

$page = $URL_that_should_be_checked;
$checkurl = str_replace("/", "\/", $checkurl);
$page = file_get_contents($userpage);
$checkurl = "/".$checkurl."/";
$report = preg_match($checkurl, $page);

非常感谢!!

4 个答案:

答案 0 :(得分:2)

遵循您的代码非常困难。

您是否检查过documentation页并注意可能需要使用urlencode()功能对特殊字符进行编码?

在此行$checkurl = str_replace("/", "\/", $checkurl);上,变量$checkurl似乎没有定义。

在这一行$userpage似乎没有被定义。您提供的代码中只定义了$page

看起来你要做很多工作来设置preg_match和$report的值。目前还不清楚为什么你需要在这个过程中获取页面。

另外,你有allow_url_fopen设置为true吗?您收到任何错误消息吗?

答案 1 :(得分:2)

试试这个:

$page = file_get_contents($userpage);

$report = preg_match('/' . preg_quote($checkurl) . '/', $page);

答案 2 :(得分:1)

您应该使用PHP函数preg_quote来解析preg_match函数的URL。例如:

$checkurl = preg_quote($checkurl);

请参阅:http://php.net/manual/de/function.preg-quote.php

答案 3 :(得分:1)

不确定您的代码在做什么。

你做

$page = $URL_that_should_be_checked;

但后两行

$page = file_get_contents($userpage);

没有设置$ userpage。