2012-02-14 4 views
0

PHPでカスタムスーパーグローバル関数を作成する方法はありますか?PHPカスタムスーパーグローバル関数

私は共有サーバーにいます。 MySQLのタイムゾーンの設定を変更したいのですが。

私は私のルートフォルダにある.htaccessするSetEnv TZ America/Montrealを追加したが、それが唯一のPHPのための効果を持つとMySQL NOW()CURDATE()CURTIME()には影響しません。 MySqlはまだサーバーのTimeZoneを使用しています。

今私は、例えばスーパーグローバルPHPの関数を作成するために考えています:

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

は、それがすべての単一のPHPファイルにinclude()せずに私のサーバー内のすべての単一のPHPファイルについては、この機能にアクセスできるようにするとにかくはありますか?

私はワードプレス、phpbb、アフィリエイトスクリプトなど、多くのスクリプトを使用しています。私はすべてnow()date('Y-m-d H:i:s')に変更したくありません。これを行うのは効率的ではありません。最初のMySQL接続ごとにset time-zoneを使用してください。

+4

ようこそStackOverflowへあなたの質問に{お手伝いください}やその他のタイプの句読を使用しないでください。あなたの質問はあなたにとって重要ですが、これはピアサポートサイトです。他の人たちは彼らにとっても重要だと感じている質問をしています。ここでは、ボランティアで無料で援助する人々がいます。緊急に手助けが必要な場合は待たずに、問題を解決するために十分な注意を払うことができる人を雇うべきです。質問にノイズを加えると、実際に尋ねていることを人々が見るのが難しくなり、回答を助ける代わりにそれを取り除く人々の時間が無駄になります。 –

+0

あなたの 'now'機能をすべてのファイルに含めるとしても、それらのスクリプトを使用して変更する必要があります。そしてwordpressはそれ自身のタイムゾーン設定をとにかく使っています(wp-adminログインのGeneral Settings-> Timezoneを参照してください)。私はphpbbが似たようなものを使用していると確信しています。 – vstm

答えて

4

PHPは自動的に "include()"のように動作する 'auto_prepend_file'オプションを持っていますが、共有ホスティングをしている場合、これはほとんどオプションではありません。サーバーを共有している他のすべてのユーザーもコードを取得します。

だから、基本的に、「怠け者ではなく、各ファイルにinclude()を書き留めておきます。

+0

ありがとうございます。私は "php_value auto_prepend_file 'xxx.php'"を自分のルート.htaccessに追加するので、みんなには影響しません。 –

1

あなたは間違った道を行くと思います。私はGMTで日付を保存します。アプリケーションレベルでは、好きなタイムゾーンを使用します。どうして?あなたの会社が別の場所に移動した場合、または異なる時間帯に2つのオフィスがある場合はどうなりますか? 1つの場所でこれを制御できる必要があります。これはアプリケーションレベルのものです。

をご覧ください。https://code.sugarcrm.com/viewvc/public/trunk/sugarcrm/include/TimeDate.php?view=markup