我使用此代码搜索网站上的链接。
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://example.com");
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);
curl_close ($ch);
// search the results from the starting site
if( $result ){
preg_match_all('/<a href="(http:\/\/www.[^0-9]+.pdf?)"/', $result, $output, PREG_SET_ORDER );
foreach($output as $item ){
print_r($item );
}
}
copy($item, 'file.pdf');
?>
只有一个pdf链接。然后我需要一个代码来下载PHP中的链接提供的pdf文件。复制功能不起作用。 谢谢你:))
答案 0 :(得分:1)
这里有两个问题:
copy()
函数和静态文件名file.pdf
。您可能希望保存foreach循环中的所有文件,并使用相同的名称或随机的东西(否则,每个保存操作都会覆盖之前的file.pdf
),如下所示:
// Set your save path here
$path = '/home/igos/pdfs/';
foreach($output as $item){
copy($item, $path . basename($item));
}
这将保存所有文件,将其原始文件名保存到/home/igos/pdfs/
文件夹。
答案 1 :(得分:1)
我已经使用此代码解决了它,感谢@Oldskool :):
<?php
set_time_limit(0);
include 'simple_html_dom.php';
$url='example.com';
//set your save path here
$path = '/home/igos/pdfs/';
$html = file_get_html($url) or die ('invalid url');
foreach($html->find('a') as $e) {
$link= $e->href;
if (preg_match('/\.pdf$/i', $link)) {
$result[] = $link;
copy($link, $path . basename($link));
}
}
?>