是否可以从可执行的PHP文件中调用Codeigniter类函数? 我有一个控制器类,我想从可执行的PHP文件中调用该类的函数。
为什么呢?因为我的应用程序适用于cronjobs。当我从GUI创建一个cronjob时,会创建一个新的php文件,并使用该配置进行设置以调用控制器功能。
我该怎么做?
编辑:
我尝试了this example,但它不起作用。创建的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
但是他们不起作用
编辑:
在Ben回答之后,我尝试过(我有一个站点文件夹):
* * * * * /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
答案 0 :(得分: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的绝对路径
答案 1 :(得分:0)
是的,你可以。只需确保所有正确的文件都包含在您想要的上下文中。
从类中创建一个“new”CodeIgniter对象,然后使用这些函数。