我的PHP代码中有2个字符串,1是我的方法的参数,1是来自ini文件的字符串。 问题在于它们并不相同,尽管它们具有相同的内容,可能是由于编码问题。当使用var_dump时,据报道第一个字符串的长度为23,第二个字符串的长度为47(请参阅我的问题的结尾部分)。并且最终具有相同的长度,所以比较不会失败?最好,我希望他们是utf8编码。将两个字符串转换为相同的字节长度
作为参考,这是从代码的摘录:
static function getString($keyword,$file) {
$lang_handle = parse_ini_file($file, true);
var_dump($keyword);
foreach ($lang_handle as $key => $value) {
var_dump($key);
if ($key == $keyword) {
foreach ($value as $subkey => $subvalue) {
var_dump("\t" . $subkey . " => " . $subvalue);
}
}
}
}
具有以下的ini:
[clientcockpit/login.php]
header = "Kunden Login"
username = "Benutzername"
password = "Passwort"
forgot = "Passwort vergessen"
login = "Login"
当调用用的getString( “clientcockpit/login.php中” 的方法中,“ inifile.ini“)的输出是:
string 'clientcockpit/login.php' (length=23)
string '�c�l�i�e�n�t�c�o�c�k�p�i�t�/�l�o�g�i�n�.�p�h�p�' (length=47)
有问题的字符串是来自用户还是ini文件? – 2009-10-28 11:13:21
如果我记得parse_ini_file()函数有一个utf8编码(多字节)的错误。您可能需要更改.ini文件的编码。 (我不能谷歌参考这个信息) – Ismael 2009-10-28 11:16:24
谷歌它:php multibyte parse_ini_file 我想你会发现这个问题的线索。不幸的是我不确定。 – Ismael 2009-10-28 11:18:47