0

所以,好吧,我在我的网站上使用 PHP,假设我知道很多 MySQL 和一点点 MS SQL。现在,我想用 PHP/USD 汇率解析一些 XML 并将其存储在数据库中。

人们能想到的最简单的方法可能是:

$XMLContent=file("http://www.webservicex.net/CurrencyConvertor.asmx/ConversionRate?FromCurrency=USD&ToCurrency=PHP");

foreach($XMLContent as $line){
$a=&strip_tags($line);
if (is_numeric($a))
{
    // output the exchange rate
    echo $a;
    // THen I would probably go like this:
    mssql_query('update table set xchange_rate='.(float)floatval($a));
    // break cycle once found;
    break;
}
}

那将是完美的……如果由于外部 XML GET 请求而运行此脚本不需要 0.8 秒。

所以我想我应该使用 Windows Scheduler,并运行一个任务,假设每小时更新一次记录。现在的问题是,我不知道我会使用什么脚本。我的意思是,我不能简单地用 PHP 脚本运行浏览器——那太荒谬了。

那么,让脚本/应用程序在 PHP 之外运行它的最简单方法是什么,而无需实际打开浏览器。

谢谢!

编辑 好点,现在我正在 Win7 上测试它,但稍后它将在 Windows Server(2008?)上实现。

4

2 回答 2

1

php 也有一个二进制可执行解释器。在 win 上,它被称为 php.exe

http://php.net/manual/en/features.commandline.php

首先从 shell 提示符下让它工作,然后为它制定一个计划任务。请记住,它与通过网络服务器运行脚本时获得的 php 不同。有些设置不同,版本可能不同,可能使用不同的 php.ini 文件(因此可能加载了不同的扩展名)。

考虑使用绝对文件路径开始,直到你让事情正常。

于 2012-06-11T15:37:56.553 回答
0

您不需要浏览器来运行 PHP 脚本。PHP 可以愉快地作为控制台应用程序运行。在不知道您将其部署在哪个系统上(即哪个操作系统)的情况下,很难为您提供更多指导。例如,在类 unix 系统(UN*X、linux、OS X 等)上,您可以创建 PHP 文件:

一些文件.php

<?php

.....

?>

例如,将此文件保存到某个预定义的目录中,/opt/myproject然后将其安排在 /etc/crontab 中(假设您的 php 安装在 /usr/bin 中):

7 * * * *    /usr/bin/php /opt/myproject/somefile.php

这将使用 PHP 运行您的脚本,无需任何浏览器,每小时一次,每小时 7 分钟。

编辑如果您要在 Windows 服务器上部署它,您可以at在命令提示符下使用命令或使用Task Scheduler管理单元Server Manager来配置您的作业。PHP 脚本将保存在您喜欢的位置(例如 D:\Projects\MyProject\myfile.php),您计划运行的命令将是 C:\WAMP\bin\php.exe - 或者您的 php 所在的位置.exe 位于)。

于 2012-06-11T15:36:19.470 回答