php中的宽字符串?

时间:2013-09-12 12:49:23

标签: php widestring

最初,我遇到的问题是,尽管我通过光学检查获得了相同的路径,但file_exists()为一个返回true而另一个返回false。在花了几个小时缩小我的问题后,我结束了以下代码......(路径编辑)

$myCorePath = $modx->getOption('my.core_path', null, $modx->getOption('core_path').'components/my/');

$pkg1 = $myCorePath.'model/';
$pkg2 = MODX_CORE_PATH . 'components/my/model/';
$pkg3 = '/path/to/modx/core/components/my/model/';

var_dump($pkg1, $pkg2, $pkg3);

...及其输出:

string '/path/to/modx/core/components/my/model/' (length=37)
string '/path/to/modx/core/components/my/model/' (length=78)
string '/path/to/modx/core/components/my/model/' (length=78)

所以两个版本,有趣的是包括简单地写下字符串,显然使用宽字符(这些工作,file_exists() - 明智),而遗憾的是我的首选变体使用窄字符。我试图研究这个,但我wound up with告诉我的唯一的事情就是php没有宽字符串这样的东西。我还用十六进制编辑器验证了所有字符串常量在php文件中每个字符只占用一个字节。

phpinfo()告诉我,我有PHP版本5.4.9,我在64位linux机器上运行,fwiw。该手册于一周前编辑;它的信息不准确,或者这里发生了什么?

1 个答案:

答案 0 :(得分:0)

我认为这是由多字节编码引起的。