我有这个脚本,它在服务器上运行得很好,但在本地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;
}
?>
此代码在服务器中运行良好,但在本地wamp服务器中运行不好
我认为您需要打开以下PHP参数。
allow_url_fopen = On
您可以在php.ini文件中找到它。
如果您使用的是WAMPServer,那么您也可以使用wampmanager图标菜单打开它,如下所示
left_click wampmanager icon -> PHP -> PHP Settings -> Allow URL Fopen
我仔细看了一下你的代码。
我想$tag->getAttribute('src')
中的数据没有完整的url,至少在一种情况下会导致您的错误。它可能使用类似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;
}
根据您链接的屏幕截图,$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)
请记住,这将只适用于根相对路径;在您认为它们需要以这种方式粘合域之前,您可能需要检查绝对路径和相对路径。