将计划的XML解析到SQL数据库的最简单方法是什么?

时间:2012-06-11 15:27:58

标签: php mysql sql-server xml cron

所以,好吧,我在我的网站上使用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?)上实现。

2 个答案:

答案 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位于)。