运行MAMP时有没有人遇到过iconv_strlen函数的问题?
答案 0 :(得分:16)
我一直遇到超时问题,但没有抛出任何异常。我正在开发Zend Framework网站。通过深入调试调试器,我将问题跟踪到iconv_strlen的使用。它没有被任何奇怪的字符串调用,它是一个用于验证主机名的简单函数。
为了验证这个问题,我尝试了一个简单的iconv_strlen(“test”,'UTF-8');这会导致错误出现 - 在浏览器中无限旋转加载器但没有错误日志消息,并且脚本超出了最大执行时间。在这个版本的PHP中,这似乎是一个未被捕获的大文章。
我的同事发现这篇文章可能会解决这个问题。我在Mac OS X机器上更新到最新的Snow Leopard,即10.6。这似乎是一个已知的错误,如果你构建自己的php或使用内置的Apple版本或使用端口,有一个解决方法。
长话短说,您可以通过上面的补丁深入研究重新编译自己的php,但这种方式首先打败了MAMP。
最快的解决方案就是永远不要使用iconv_strlen()(或任何iconv_函数) - 如果您使用Zend Framework,这不是一个选项 - 或者还原MAMP使用php 5.2。
直到MAMP开始包含php源文件并提供一种方法,通过该方法可以轻松地重新编译与所有必需库捆绑在一起的php,这必然是包的限制。 MAMP工作得很好,直到你需要重新编译php。当发生这种情况时,简单地使用端口要容易得多。
答案 1 :(得分:1)
如果有人仍然遇到这个问题,我已经挣扎了好几年了,但是在OSX Lion上升级到最新版本的MAMP Pro似乎对我有用。
答案 2 :(得分:0)
<?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);
}
?>
答案 3 :(得分:0)