Wordpress の qTranslate で PHP Warning (Invalid CRT parameters detected ) が出力される
公開日| 2011年12月28日 | コメントはまだありません。
Wordpress の qTranslate というプラグインを使っていると、以下のような警告メッセージが出力されることがあります。
qTranslate Warning: Invalid CRT parameters detected in ... \wp-content\plugins\qtranslate\qtranslate_core.php on line 447
この警告は、Windowsの場合にのみ出力される警告です。
今回は、この警告を出力しないようにするための一つの方法を提示してみます。
警告メッセージの削除方法
警告メッセージなので、無視しても動作に致命的な問題を引き起こすことはありません。
しかし、大量の警告メッセージが出力されるので、できれば、この警告メッセージを削除したいですよね。
その場合、以下のように ‘… \wp-content\plugins\qtranslate\qtranslate_core.php‘ を編集することで対応することができます。
453 454 455 456 457 458 459 460 461 | $search[] = '/(([^%])%4|^%4)/'; $replace[] = '${2}'.$date; // date U $format = preg_replace($search,$replace,$format); // Add Windows if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { $format = str_replace('%P','%p',$format); } return $before.strftime($format, $date).$after; |
この問題の原因は、非常に単純です。
PHPのstrftimeという日付情報を文字列変換する関数にWindowsでは利用できない ‘%P’ というパラメータが使用されているために発生するものです。
上記では、暫定的に ‘%P’ → ‘%p’ へ変換することで対処しています。
PHPのstrftimeという日付情報を文字列変換する関数にWindowsでは利用できない ‘%P’ というパラメータが使用されているために発生するものです。
上記では、暫定的に ‘%P’ → ‘%p’ へ変換することで対処しています。
%p 指定した時刻に応じた大文字の 'AM' あるいは 'PM' 00:31 なら AM、22:23 なら PM %P 指定した時刻に応じた小文字の 'am' あるいは 'pm' 00:31 なら am、22:23 なら pm
これは、必ずしも正しい解決方法ではないかもしれません。ただ、本質的に伝えたい情報が、大文字から小文字へ変換されるだけなので、一つの方法としては有りだと思います。
この記事を読んだ人は、こんな記事も読んでいます。:
Trackback URL
このコメントは管理人から承認された後、表示されます。
コメント
コメントをどうぞ

