我正在使用php中的wget命令来下载css样式表及其依赖项。
exec ("wget -p --convert-links -nH -nd --no-check-certificate http://infidelphia.com/style.css -P /home/devuser/public_html/Tset/");
有一个样式表和几张图片。当我在命令行中执行它时:
wget -p --convert-links -nH -nd --no-check-certificate http://infidelphia.com/style.css -P /home/devuser/public_html/Tset/
我看到其中一个资源之间有一个404,但在下载之后还有其他所有资源。
但是当我通过PHP执行此操作后,将跳过此资源。有没有办法确保跳过失败的下载/错误,可以下载其余的资产?
答案 0 :(得分:2)
有时,我使用php curl下载文件,例如:
$rutaArchivo = '/home/devuser/public_html/Tset/style.css';
$urlArchivo = 'http://infidelphia.com/style.css';
$fp = fopen ($rutaArchivo, 'w+');
$ch = curl_init($urlArchivo);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$this->httpCode = $httpCode;
curl_close($ch);
fclose($fp);
if ($httpCode != 200) {
unlink($rutaArchivo);
echo 'Download error, deleting the empty file';
} else {
echo 'Download ok';
}
Greatings!