0

我正在通过 php 的 shell_exec() 运行 wget 我怎么能理解 wget 获取文件时出现 404 错误?

谢谢你。

4

3 回答 3

2

我认为你正在解决错误的问题。请先尝试CURL,然后再使用David在评论中首次建议的有意义的、可解析的状态。

于 2010-03-29T11:11:31.123 回答
1

据此当遇到简单的“下载文件XYZ”操作时,wget由于某种原因下载失败时会返回返回码1。它不适用于镜像站点等复杂操作,但在您的情况下,它应该没问题。

您可以使用exec() `s "return_var" 变量获取返回码。

如果 Wget出现正确的 404 页面,它应该返回1(或其他一些不是的状态代码)。0试试看。

要真正区分 wget 收到的确切错误状态代码,我认为您必须开始解析其输出(或使用基于 PHP 的 Web 客户端类。)

于 2010-03-29T09:47:57.323 回答
1

您可以使用如下命令行exec

exec("wget http://www.google.com/not_present.html 2> some_temp_file ",&output,&retvalue);

检查retvalue以查看是否发生错误。非零值表示发生错误。由于我们已将标准错误重定向到some_temp_file,因此您可以 grep 此文件以获取模式404 Not Found。如果存在,则表明 a404已经发生。

于 2010-03-29T09:54:25.170 回答