0

実行可能なPHPファイルからCodeigniterクラス関数を呼び出すことは可能ですか? コントローラー クラスがあり、実行可能な PHP ファイルからそのクラスの関数を呼び出したいと考えています。

なんで?私のアプリケーションは cronjobs で動作するためです。GUI から cronjob を作成すると、新しい php ファイルが作成され、コントローラー関数を呼び出すための構成が設定されます。

どうすればいいですか?

編集:

この例を試してみましたが、うまくいきません。作成される cronjobs は (テストする組み合わせ):

* * * * * /usr/bin/php /home/myweb/public_html/CI/application/controllers/tools message
* * * * * /usr/bin/php http://www.myweb.com/CI/site/index.php/tools/message
* * * * * /usr/bin/php index.php tools message
* * * * * php index.php tools message

しかし、それらは機能しません

編集:

ベンの答えの後、私は試しました(サイトフォルダーがあります):

* * * * * /usr/bin/php /home/myweb/public_html/CI/index.php tools message
* * * * * /usr/bin/php /home/myweb/public_html/CI/site/index.php tools message

次のログ エラーを取得します。

ERROR - 2013-01-30 05:52:01 --> Severity: Notice  --> Undefined index:  REMOTE_ADDR /home/myweb/public_html/CI/system/core/Input.php 351
ERROR - 2013-01-30 05:52:01 --> Severity: Warning  --> Cannot modify header information - headers already sent by (output started at /home/myweb/public_html/CI/system/core/Exceptions.php:185) /home/myweb/public_html/CI/system/libraries/Session.php 675
ERROR - 2013-01-30 05:52:01 --> Severity: Warning  --> Cannot modify header information - headers already sent by (output started at /home/myweb/public_html/CI/system/core/Exceptions.php:185) /home/myweb/public_html/CI/system/helpers/url_helper.php 542

【解決済み】curlで解決しました:

* * * * * /usr/bin/curl http://www.myweb.com/CI/site/index.php/tools/message
4

2 に答える 2

1

はい、可能です。CIドキュメントから直接...

http://ellislab.com/codeigniter/user-guide/general/cli.html

質問の更新から編集...

cron に関するいくつかの問題...

Cron 1)コントローラーファイルへの絶対パスを使用しています。index.phpへの絶対パスである必要があります

Cron 2) http アドレスを使用する場合は、curl -L --silent "www.example.com" を使用する必要があります。

Cron 3) 絶対ドキュメント パスではない

Cron 4) は、php と index.php の両方に絶対パスを使用する必要があります。

于 2013-01-29T20:36:51.257 に答える
0

はい、できます。必要なコンテキストにすべての正しいファイルが含まれていることを確認してください。

クラスから「新しい」CodeIgniter オブジェクトを作成し、関数を使用します。

于 2013-01-29T20:35:51.157 に答える