Php ResourceBundle返回NULL,但未引发任何错误
对于国际化数据,最好使用PHP的“intl”扩展中的Php ResourceBundle返回NULL,但未引发任何错误,php,resourcebundle,icu,intl,Php,Resourcebundle,Icu,Intl,对于国际化数据,最好使用PHP的“intl”扩展中的\ResourceBundle类 我运行了扩展名(PHP5.3.4;Windows),并使用*创建了一个.dat文件,但是我没有从资源包类中获得预期的结果 现在我做这个 $bundle = '/var/www/libs/icudt48l.dat'; $resource = new \ResourceBundle('en_US', $bundle, true); var_dump($resource, is_file($bundle)); /
\ResourceBundle
类
我运行了扩展名(PHP5.3.4;Windows),并使用*创建了一个.dat文件,但是我没有从资源包类中获得预期的结果
现在我做这个
$bundle = '/var/www/libs/icudt48l.dat';
$resource = new \ResourceBundle('en_US', $bundle, true);
var_dump($resource, is_file($bundle)); //--> NULL, TRUE
问题是,$resource
返回NULL而不引发任何错误。发生什么事了
*(仅检查了最后两个数据部分始终包含基本数据,我将其导出为ICU4C)尝试
$resource=resourcebundle\u create('en\u US',$bundle,true)代码>没有成功,尝试过;resourcebundle_create();新ResourceBundle();ResourceBundle::create();所有返回空…您可以考虑直接读取CLDR数据,因为ICU数据是从这里来的——不应该依赖ICU4C数据的内部格式。请问,您定制的目的是什么?最好在intl扩展方面实现您的组件,或者建议对intl或ICU进行更改。
<?php
$b = '/var/www/libs/icudt48l';
$r = new \ResourceBundle('en_US', $b, true);
var_dump($r instanceof \ResourceBundle); //-> TRUE