ResourceBundle返回NULL,不会引发任何错误

问题描述:

对于国际化数据,使用PHP的“intl”扩展中的\ResourceBundle类将会非常好。ResourceBundle返回NULL,不会引发任何错误

我得到了扩展运行(PHP 5.3.4; Windows)并使用ICU Data Library Customizer *创建了一个.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)

+0

您可能会考虑直接读取CLDR数据,因为这是ICU数据的来源 - 不应依赖ICU4C数据的内部格式。请问,您定制的目的是什么?根据intl扩展名实现组件,或者向intl或ICU提出更改建议可能更好。 – 2011-06-09 19:24:54

<?php 
$b = '/var/www/libs/icudt48l'; 
$r = new \ResourceBundle('en_US', $b, true); 
var_dump($r instanceof \ResourceBundle); //-> TRUE 

中的.dat扩展应该留给使它可以工作

+0

试过这个。不工作。 '$ r'仍然是'NULL'。 – 2014-06-07 13:14:02

尝试$resource = resourcebundle_create('en_US',$bundle,true);

+0

没有成功,试过了; resourcebundle_create(); new ResourceBundle(); ResourceBundle :: create(); 全部返回NULL ... – 2011-06-06 19:38:57