下载页面而不下载图像文件或css或javascript与curl

时间:2011-06-17 14:09:06

标签: php curl

每当我使用curl(php)下载页面时,它会下载页面上的所有内容,例如images, css files or javascript files。但有时我不想下载这些。我可以控制通过curl下载的资源。我已经阅读了手册,但我还没有找到可以实现这一目标的选项?请不要建议获取整个页面,然后使用一些regex魔法,因为这仍然会下载页面并增加加载时间。 这是一个演示代码,我从mozilla.com

下载页面
<?php
$url="http://www.mozilla.com/en-US/firefox/new/";
$userAgent="Mozilla/5.0 (Windows NT 5.1; rv:2.0)Gecko/20100101 Firefox/4.0";
//$accept="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$encoding="gzip, deflate";
$header['lang']="en-us,en;q=0.5";
$header['charset']="ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header['conn']="keep-alive";
$header['keep-alive']=115;

$ch=curl_init();
curl_setopt($ch,CURLOPT_USERAGENT,$userAgent);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_ENCODING,$encoding);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_AUTOREFERER,1);
$content=curl_exec($ch);
curl_close($ch);
echo $content;
?>

当我回复内容时,它也会显示图像。我在firebug's network tab中看到图片和external js文件正在下载

2 个答案:

答案 0 :(得分:1)

PHP的curl只取你告诉它的内容。它不会解析html以查找javascript / css <link>标记和<img>标记,也不会自动获取它们。

如果你有curl下载这些资源,那么你的代码告诉它这样做,由你来决定要取什么和不要取什么。 Curl只做你告诉它的事情。

答案 1 :(得分:1)

您可以使用

来避免下载
echo htmlentities($content);