通过PHP执行wget

时间:2012-05-18 20:35:49

标签: php bash unix wget

我正在使用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执行此操作后,将跳过此资源。有没有办法确保跳过失败的下载/错误,可以下载其余的资产?

1 个答案:

答案 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!