MAMP の実行中に iconv_strlen 関数で問題が発生した人はいますか?
4 に答える
タイムアウトの問題が発生していますが、例外がスローされることはありません。ZendFrameworkサイトで作業しています。デバッガーを徹底的に追跡することで、iconv_strlenを使用するまで問題を追跡しました。奇妙な文字列では呼び出されません。ホスト名を検証するために使用される単純な関数です。
問題を確認するために、単純なiconv_strlen( "test"、'UTF-8');を試しました。これにより、エラーが発生します-ブラウザで無限に回転するローダーがありますが、エラーログメッセージは表示されず、スクリプトは最大実行時間を超えます。このバージョンのPHPでは、これは大きな問題のようです。
私の同僚は、この問題に対処する可能性のあるこの記事を見つけました。私は最新のSnowLeopard(10.6)にアップデートされたMacOSXマシンを使用しています。これは既知のバグのようであり、独自のphpをビルドするか、組み込みのAppleバージョンを使用するか、ポートを使用する場合は回避策があります。
- バグ#49267 iconvのリンクが失敗する:「未定義のシンボル:_libiconv」
- Mac OS10.6(Snow Leopard)上のPHP 5.3.0-Fabien Potencier; 2009年11月5日
簡単に言うと、上記のパッチを使用して独自のphpを再コンパイルすることを検討できますが、この種の方法は、そもそもMAMPのポイントを打ち負かします。
最も手っ取り早い解決策は、iconv_strlen()(またはiconv_関数のいずれか)を使用しないことです。これは、Zend Frameworkを使用する場合はオプションではありません。そうでない場合は、MAMPを元に戻してphp5.2を使用します。
MAMPがphpソースファイルを含め、必要なすべてのライブラリにバンドルされているphpを簡単に再コンパイルする方法を提供し始めるまで、これは必然的にパッケージの制限のままになります。MAMPは、phpを再コンパイルする必要があるポイントに到達するまでうまく機能します。その場合、ポートを使用する方がはるかに簡単です。
誰かがまだこの問題を抱えている場合に備えて、私はこれで何年も苦労しましたが、OSX Lion で最新バージョンの MAMP Pro にアップグレードするとうまくいくようでした。
wbond、少し混乱しています。MAMP 1.9.4 は 100% 正常に動作します。「iconv」の問題を含むのは、1.9.5 から 2.0.1 までの MAMP の任意のバージョンです。また、MAMP 2.0.1 の PHP 5.3.6 でソリューションをテストしましたが、動作しません。唯一の解決策は、MAMP 1.9.4 にロールバックするか、最新の MAMP を使用して PHP を 5.2.x にロールバックすることです。
<?php
$str = 'Hello, world!';
$str = iconv_function('UTF-8', 'UTF-8//IGNORE', $str);
echo $str;
function iconv_function ($in_charset, $out_charset, $str) {
return iconv($in_charset, $out_charset, $str);
}
?>
MAMP フォーラムによると、バージョン 2.x (2011 年 8 月 17 日にリリースされた 2.0.2) への新しい更新により、iconv の問題が解決されます。はい!