我是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);
非常感谢!!
答案 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);
答案 3 :(得分:1)
不确定您的代码在做什么。
你做
$page = $URL_that_should_be_checked;
但后两行
$page = file_get_contents($userpage);
没有设置$ userpage。