0

所以,我的计划是用 PHP 和 IECapt 制作 URL 的小缩略图。IECapt 运行良好,一个不错的命令行工具,可以在 1 到 4 秒内获取指定 URL 的全尺寸图像。但我的问题是通过 PHP 执行它。这是我试图开始工作的代码:

exec('IECapt.exe ' . escapeshellarg($URL) . ' ' . escapeshellarg($Filename))

$URL 当然是 URL,$filename 是 URL 的简化版本。

有时我让 IECapt 捕捉图像(通过 PHP),但这需要很长时间(30-60 秒),最后我总是收到 500 错误,没有错误消息告诉我出了什么问题。这两个变量都很好,它们可以使用命令行手动工作:

IECapt http://google.com Google.png

我的服务器设置是 IIS7 和 PHP5.2.9,如果相关的话。(Windows Vista,都在我的个人电脑上,所以完全可以访问。)

有任何想法吗?

4

2 回答 2

0

可能超过了执行时间,你的脚本被杀死了。 http://us3.php.net/manual/en/info.configuration.php#ini.max-execution-time

编辑配置文件后,还要检查错误消息显示是否打开,以便它们到达您的屏幕(将 display_errors 设置为 On)

于 2009-09-22T14:40:08.403 回答
0

正如 Palantir 所说,它超过了默认的 PHP 执行时间。任何可能需要很长时间(即超过几秒钟)的操作都不应通过 Web 浏览器中的 PHP 脚本运行。

您需要编写一个 CLI 脚本(命令行)来异步运行这些操作。默认情况下,CLI 脚本对执行时间没有限制。

有关更多信息,请参见http://php.net/cli

如果您做很多此类事情(即必须处理 100 次此类操作),您应该查看旨在解决此类问题的消息队列。请参阅http://framework.zend.com/manual/en/zend.queue.html

网络浏览器不适合进行繁重的处理:)

于 2009-09-22T17:31:37.570 回答