0

さて、私は自分のWebサイトにPHPを使用しています。そして、MySQLとMSSQLをかなり知っていると思います。ここで、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;
}
}

外部のXMLGETリクエストが原因で、このスクリプトの実行に0.8秒もかからなかった場合、それは完全に機能します。

したがって、Windowsスケジューラを使用して、実行するタスクを作成する必要があると思います。たとえば、1時間ごとにレコードを更新します。問題は、どのスクリプトを使用するかわからないということです。つまり、PHPスクリプトを使用してブラウザを単純に実行することはできません。

したがって、実際にブラウザを開かなくても、PHPの外部でスクリプト/アプリケーションを実行するための最も簡単な方法は何でしょうか。

ありがとう!

編集 良い点です。現在、Win7でテストしていますが、後でWindows Server(2008?)に実装される予定です。

4

2 に答える 2

1

phpにはバイナリ実行可能インタープリターもあります。勝つと、php.exeと呼ばれます

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

最初にシェルプロンプトから動作させてから、スケジュールされたタスクを作成します。これは、Webサーバーを介してスクリプトを実行するときに取得するphpと同じではないことに注意してください。一部の設定は異なり、バージョンも異なる場合があり、異なるphp.iniファイルを使用する場合があります(したがって、異なる拡張子が読み込まれる場合があります)。

動作するまで、絶対ファイルパスを使用して開始することを検討してください。

于 2012-06-11T15:37:56.553 に答える
0

PHPスクリプトを実行するのにブラウザは必要ありません。PHPは、コンソールアプリケーションとして問題なく実行できます。これを展開しているシステム(つまり、どのOS)がわからないと、より多くの指示を与えることは困難です。たとえば、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を使用して、1時間に1回、1時間の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 に答える