function feedSearch($url) {
if($html = @DOMDocument::loadHTML(file_get_contents($url))) {
$xpath = new DOMXPath($html);
$feeds = $xpath->query("//head/link[@href][@type='application/rss+xml']/@href");
if($feeds->length != 0){
$url = rtrim($url, '/');
if(strpos($url, 'https://')){
$url = ltrim($url, 'https://');
return $feedURL = $url . "/feed";
}else{
return $feedURL = $url . "/feed";
}
}
}
return false;
}
if(feedSearch($url)){
$xml = feedSearch($url);
}else{
echo $url . " is not a valid feed URL.";
die();
}
上面的代码在我的localhost中运行良好,但在我的服务器中运行不正常。在服务器中它会死。我不知道我的服务器中缺少了什么。如何在PHP中调试版本问题?
答案 0 :(得分:1)
您需要在服务器的php.ini文件中添加allow_url_fopen = On
。
或者,如果您无法访问php.ini文件,则可以在.htaccess文件中添加php_value allow_url_fopen On
。
或者正如@Ohgodwhy指出的那样,使用卷曲更好。
您可以使用curl创建自己的函数,然后使用它而不是file_get_contents
:
function get_contents_from_url($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}