12

有没有人在运行 MAMP 时遇到过 iconv_strlen 函数的问题?

4

4 回答 4

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。发生这种情况时,简单地使用端口会容易得多。

于 2011-03-23T16:36:11.647 回答
1

万一有人仍然遇到这个问题,我为此苦苦挣扎了很长时间,但是在 OSX Lion 上升级到最新版本的 MAMP Pro 似乎对我有用。

于 2011-07-29T14:35:25.233 回答
0

wbond,你有点搞混了。MAMP 1.9.4 可以 100% 正常工作。从 1.9.5 到 2.0.1 的任何版本的 MAMP 都包含“iconv”问题。另外,我在 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);
}

?>
于 2011-07-27T06:33:57.770 回答
0

根据 MA​​MP 论坛,2.x 版(2011 年 8 月 17 日发布的 2.0.2)的新更新解决了 iconv 问题。是的!

于 2011-08-26T03:59:24.860 回答