我的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