我是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);
非常感谢!
试试这个:
$page = file_get_contents($userpage);
$report = preg_match('/' . preg_quote($checkurl) . '/', $page);
很难理解你的代码。
您是否检查了文档页面并注意到特殊字符可能需要使用urlencode()
函数进行编码?
在这行$checkurl = str_replace("/", "/", $checkurl);
中,变量$checkurl
似乎没有定义。
在这一行$userpage
似乎没有被定义。在您提供的代码中只定义了$page
。
看起来你做了很多工作来设置preg_match和$report
它的值。在这个过程中为什么需要获取页面还不清楚。
还有,你是否将allow_url_fopen设置为true?您是否收到任何错误消息?
您应该使用PHP函数preg_quote将URL解析为preg_match函数。例子:
$checkurl = preg_quote($checkurl);
见:http://php.net/manual/de/function.preg-quote.php
不知道你的代码在做什么
你做了$page = $URL_that_should_be_checked;
但是两行之后
$page = file_get_contents($userpage);
没有设置$userpage