我建议使用 html 解析库来简化一切。即类似Simple HTML DOM 的东西。
使用简单的 HTML DOM:
$html = file_get_html('http://www.google.com/');
foreach($html->find('img') as $element){
//download image
}
Run Code Online (Sandbox Code Playgroud)
对于下载文件(和 html),我建议使用诸如 curl 之类的 HTTP 包装器,因为它允许对使用 file_get_contents 进行更多控制。但是,如果您想使用 file_get_contents,php 站点上有一些关于如何获取 URL 的很好的示例。
更复杂的方法允许您指定标题,如果您想设置用户代理,这可能很有用。(如果您经常抓取其他网站,最好有一个自定义用户代理,因为您可以使用它来让网站管理您的网站或联系点,如果您使用太多带宽,这比管理员阻止您的网站要好IP地址)。
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n"
)
);
$context = stream_context_create($opts);
$file = file_get_contents('http://www.example.com/', false, $context);
Run Code Online (Sandbox Code Playgroud)
虽然当然可以简单地通过以下方式完成:
$file = file_get_contents('http://www.example.com/');
Run Code Online (Sandbox Code Playgroud)