我有这个脚本在服务器上工作正常,但在本地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;
}
?>
此代码在服务器中运行良好,但在本地运行服务器
中无效答案 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)
请记住,现在只能使用根相对路径;你可能想要检查绝对和相对路径,然后再假设他们需要以这种方式粘合域。