2012-02-14 116 views
0

是否有無法在PHP中創建自定義超全局函數?PHP自定義超全局函數

我在共享服務器上。我想在MySQL中更改我的時區設置。

我已經加入SetEnv TZ America/Montreal在我的根文件夾爲.htaccess,但只作用於PHP,並不會影響MySQL的NOW()CURDATE()CURTIME()。 MySql仍然使用服務器的TimeZone。

現在我正在考慮創建例如超全局PHP函數:

function now() { return date("Y-m-d H:i:s"); } 

反正有做在我的服務器的每一個PHP文件,該功能訪問,無需include()它的每一個PHP文件?

我使用許多許多腳本,如wordpress,phpbb,會員腳本等,我不想將每個now()更改爲date('Y-m-d H:i:s')。這樣做效率不高,或者在每個第一個MySQL連接上使用set time-zone

+4

歡迎來到StackOverflow。請不要在你的問題中使用諸如{請幫助}或其他乞求類型的措辭。你的問題對你很重要,但這是一個同行支持網站;其他人也有他們認爲對他們很重要的問題,這裏的人們自願提供免費幫助。如果你迫切需要幫助,你不能等待,你應該聘請一個能夠給予你全力關注的人來解決問題。給這個問題添加噪音會讓人們很難看到你實際詢問的內容,並浪費那些將其刪除而不是幫助答案的人的時間。 – 2012-02-14 18:34:36

+0

好吧,即使你將你的'now'功能包含到每個文件中,你都必須修改這些腳本才能使用它。而且wordpress使用它自己的時區設置(請參閱常規設置 - >您的wp-admin登錄中的時區)。我確信phpbb使用類似的東西。 – vstm 2012-02-14 18:38:26

回答

4

PHP有一個'auto_prepend_file'選項,它基本上就像一個自動的「include()」,但如果你在共享主機上,這很可能不是一個選項 - 它適用於所有的PHP,這意味着您與其他人共享服務器的其他人也將獲得您的代碼。

所以基本上,它歸結爲「停止懶惰,並在每個文件中寫出include()」。

+0

非常感謝。我在我的根.htaccess中添加「php_value auto_prepend_file'xxx.php'」,所以它隻影響我的並不是每個人。 – 2012-02-14 20:05:44