通过PHP执行wget

通过PHP执行wget,php,bash,unix,wget,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://i

我在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执行此操作时,将跳过此资源之后的所有内容。是否有办法确保跳过失败的下载/错误,并下载其余的资产?

有时,我使用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';
}

格雷廷斯

需要使用wget下载文件吗?我不知道还有其他方法,你知道吗?当然,我是在PHP脚本的上下文中说的。我需要通过脚本下载。请参阅我的答案。我希望找到从cmd行到wget的路径是有用的,它使用
哪个wget
。然后编辑php以使用wget的相同路径,看看这是否解决了问题。祝你好运。但这不会让我得到像wget这样的依赖项(图像等)。如果你阅读style.css并使用常规表达式获得de-images路径、字体路径等,然后下载每个文件,会怎么样?