我按照此处概述的说明进行操作:
在 Mac 上的 XAMPP 上安装 PHP 国际化扩展 (Intl)
运行 sudo pecl install intl
从地窖中选择了正确的文件
然后发生了这个错误:
/private/tmp/pear/temp/intl/intl_error.h:24:10:致命错误:
找不到“ext/standard/php_smart_str.h”文件
include
^ 1 error generated. make: *** [php_intl.lo] Error 1 ERROR: `make' failed
不管怎样,做了一些研究,发现 PHP 7.0.8 弃用了 php.smart_str.h 到 php.smart_string.h
因此,鉴于我对 C++ 的了解很少,我将 smart_string.h 复制到 smart_str.h 并将所有标头从 STRING 重命名为 string......
重新运行pecl - 不走运......更多错误......不知道.c文件在哪里并重新制作php(对走那么远并不真正感兴趣),因为无论如何我正在使用XAMPP所以结束了选项。
我的 mac 上有 php 5.5,位于 usr/local/bin 文件夹深处
所以下一步是让 pecl 使用这些文件并生成 intl.so 文件......
是吗....我有 intl.so 文件,因此将其放入 XAMPP 中的“扩展”文件夹中(以供参考:/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012 )
运行 php 并出现以下错误:
警告:PHP 启动:无法加载动态库
'/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so'
- dlopen(/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so,
9): 未找到符号:_zval_used_for_init 引用自:
/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so
预期位于:平面命名空间中
/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20151012/intl.so
在第 0 行未知
我想这与不同版本有关?
无论如何,我无法让 pecl 在 XAMPP 上的 PHP 7.0.8 中安装 intl,而不会出现 make 错误。没有关于此的文档,您会认为如果您弃用 header.h 文件,您会更新所有扩展吗?
在 PHP 7 中安装 intl.so 似乎不可能?