php - ResourceBundle 返回 NULL 而不会引发任何错误

标签 php resourcebundle icu intl

对于国际化数据,最好使用 PHP 的“intl”扩展中的 \ResourceBundle 类。

我运行了扩展程序(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)

最佳答案

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

应该保留 .dat 扩展名以使其工作

关于php - ResourceBundle 返回 NULL 而不会引发任何错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6256937/

相关文章:

php - 如果某个字段结果大于或等于另一个字段,我可以更改 <td> 背景吗?

java - 带有 HTML 链接的 Spring 消息资源

java - 如何将资源分组到资源包中?

c++ - ucnv_open 错误 U_FILE_ACCESS_ERROR

php - 具有多个数据库的登录页面

php - 从文本框中获取值

html - 在 JSF 资源包字符串中包含 HTML - 可能吗?

android - 在不使用 Google API 的情况下在 Android 上将印地语音译为英语

c++ - 如何在 C++ Linux 中使用 ICU 库将 UnicodeString 转换为 windows-1251?

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源