在本地wamp中获取原始输出相同的代码在webserver中正常工作

时间:2013-12-01 09:53:59

标签: php wamp wampserver get-headers

我有这个脚本在服务器上工作正常,但在本地wamp中它给出了错误

我有fopen在

Warning: get_headers(): This function may only be used against URLs in C:\wamp\www\url\test5.php on line 8


<?php 
    $websitelink= 'http://www.brobible.com/girls/article/miley-cyrus-21st-birthday-party';
    $html = file_get_contents($websitelink); 
    $doc = new DOMDocument(); 
    @$doc->loadHTML($html); 
    $tags = $doc->getElementsByTagName('img'); 
    foreach ($tags as $tag) { 
        $data = get_headers($tag->getAttribute('src'),1); 
        $op7=''.$tag->getAttribute('src').'';
        echo $op7;
    }
?>

此代码在服务器中运行良好,但在本地运行服务器

中无效

2 个答案:

答案 0 :(得分:0)

我认为您需要打开以下PHP参数。

allow_url_fopen = On

你可以在php.ini文件中找到它。

如果您正在使用WAMPServer,那么您也可以使用wampmanager图标菜单启用此功能,如下所示

left_click wampmanager icon -> PHP -> PHP Settings -> Allow URL Fopen

我仔细查看了你的代码。

我认为$tag->getAttribute('src')中的数据至少在一种情况下没有完整的网址导致您的错误。 它可能使用的是img/imagename.png而不是http://example.com/img/imagename.png

之类的相对地址

这可以很好地解释错误信息。

尝试添加一条关于你从该陈述中得到的回声。

$tags = $doc->getElementsByTagName('img'); 
foreach ($tags as $tag) { 

    echo $tag->getAttribute('src');

    $data = get_headers($tag->getAttribute('src'),1); 
    $op7=''.$tag->getAttribute('src').'';
    echo $op7;
}

答案 1 :(得分:0)

根据您关联的屏幕截图,$op7的值为/files/img/nav/nav_02.png。这是一个根相对URL,get_headers()需要一个绝对URL(以'http://'开头)。

您需要将要查询的域(http://www.brobible.com)粘贴到图像的根相对路径,使其看起来像

get_headers('http://www.brobible.com'.$tag->getAttribute('src'),1)

请记住,现在只能使用根相对路径;你可能想要检查绝对和相对路径,然后再假设他们需要以这种方式粘合域。