所以,好吧,我在我的网站上使用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?)上实现。
答案 0 :(得分:1)
php也有一个二进制可执行解释器。在胜利时,它叫做php.exe
http://php.net/manual/en/features.commandline.php
首先从shell提示符开始工作,然后为其创建计划任务。 请记住,它与通过Web服务器运行脚本时获得的php不同。某些设置不同,版本可能不同,并且可能使用不同的php.ini文件(因此可能会加载不同的扩展名)。
考虑使用绝对文件路径,直到你开始工作为止。
答案 1 :(得分:0)
您不需要浏览器来运行PHP脚本。 PHP可以很高兴地作为控制台应用程序运行。如果不知道你正在部署什么系统(即哪个操作系统),很难给你更多指示。例如,在类似unix的系统(UN * X,linux,OS X等)上,您可以创建PHP文件:
somefile.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
管理单元{1}}配置你的工作。 PHP脚本将保存在您喜欢的位置(例如D:\ Projects \ MyProject \ myfile.php),您计划运行的命令将是C:\ WAMP \ bin \ php.exe - 或者您的php .exe位于)。