簡體   English   中英

從Cron選項卡調用時文件中的PHP語法錯誤

[英]PHP Syntax error in file when called from Cron Tab

已編輯

如我所料,這是一個php版本問題:

從命令行:

php -v
...
PHP 5.2.17 (cli) (built: Mar  1 2012 16:36:14)
Copyright (c) 1997-2010 The PHP Group
...

網頁中的phpinfo:

PHP版本5.4.20

據我所知,我將無法更改命令行版本的配置,因為它位於共享服務器中(dreamhost,如果它可以幫助某人獲得更好的響應)。

我真的需要使用我的php 5.3依賴庫,從頭開始復制某些過程將花費我很多天的時間,而我必須在2周內完成開發。

有人知道運行高於命令行定義版本的php的任何技巧嗎?

我的Cron工作有問題。

在我的項目中,幾乎每個頁面都包含一個包含以下代碼行的文件:

 .... $called_class = get_called_class(); $this->error_code = 0; $this->error_string = ""; if ( is_array($parametros) || is_object($parametros) ){ foreach ( $parametros as $key => $value ) { if (!$called_class::isValidKey ( $key ) && !$called_class::isExternalKey( $key ) ) continue; $this->$key = $value; } } ... 

從來沒有告訴我任何錯誤。

但是,當我設置Cron Job運行包含相同文件的腳本時,它將向我發送以下消息到我的電子郵件:

解析錯誤:語法錯誤,第22行的/xxx/xxx/xxx/modelo.php中出現意外T_PAAMAYIM_NEKUDOTAYIM

這是什么意思:

 if (!$called_class::isValidKey ( $key ) && !$called_class::isExternalKey( $key ) ) 

我猜想命令行中使用的php版本與顯示該頁面的服務所使用的php版本有所不同。

如果有人可以指出我的問題並提出解決方案,我將不勝感激。 順便說一句,我知道我可以使用單獨的文件,並使用與早期版本的php兼容的指令進行cron作業,但我想避免這種情況。

該問題可能是由於在錯誤的工作目錄中運行腳本引起的,請嘗試將crontab命令更改為:

cd path/to/script/directory && php script.php

好吧...似乎太簡單了,我感到有些as愧。

更改了命令:

/ usr / local / bin / php

對於

/ usr / local / php54 / bin / php

那是我的Dreamhost服務器,但在其他共享服務器中可能是類似的。 謝謝您的回答。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM