我正在創建一個經過身份驗證的用戶可以爲索引站點編寫消息的站點。帶特殊字符的函數
關於消息創建站點我有一個文本框,用戶可以在其中提供消息的標題,以及一個可以編寫消息的文本框。
該消息將被導出到.txt文件,並從標題我創建的.txt文件的標題和這樣的:
標題:這是一個信息(文件名是:thisisamessage .txt)
作爲文件名的原始文本將被存儲在數據庫rekord中,其中的.txt文件名作爲路徑。
轉換用的標題文字我使用的功能,看起來像這樣:
function filenameconverter($title){
$filename=str_replace(" ","",$title);
$filename=str_replace("ű","u",$filename);
$filename=str_replace("á","a",$filename);
$filename=str_replace("ú","u",$filename);
$filename=str_replace("ö","o",$filename);
$filename=str_replace("ő","o",$filename);
$filename=str_replace("ó","o",$filename);
$filename=str_replace("é","e",$filename);
$filename=str_replace("ü","u",$filename);
$filename=str_replace("í","i",$filename);
$filename=str_replace("Ű","U",$filename);
$filename=str_replace("Á","A",$filename);
$filename=str_replace("Ú","U",$filename);
$filename=str_replace("Ö","O",$filename);
$filename=str_replace("Ő","O",$filename);
$filename=str_replace("Ó","O",$filename);
$filename=str_replace("É","E",$filename);
$filename=str_replace("Ü","U",$filename);
$filename=str_replace("Í","I",$filename);
return $filename;
}
但是它正常工作的大部分時間,但有時它不是做其工作。 例如:「Pamutkéztörlőadagolóéshigiéniaikéztörlőadagoló」。 它應該像一個.txt文件一樣:
pamutkeztorloadagoloeshigieniaikeztorloadagolo.txt,以及它的大部分時間。 但有時當即時消息給這個這將是:
pamutkă©ztă¶rlĺ'adagolăłă©shigiă©niaikă©ztă¶rlĺ'adagolăł.txt
我匈牙利這樣的標題文本也將匈牙利這就是爲什麼我必須改變角色。
我使用XAMPP與Apache和phpmyadmin。
那麼,你爲什麼要將它保存到一個.txt文件?數據庫可以有一個UTF-8字符編碼,這意味着你不必做這樣的替換,從數據庫中獲取提交的文本會更有意義。或者你有特定的理由不這樣做? – FMashiro
這將解決我認爲的問題,但任何想法爲什麼上述功能不能很好地工作? – zoldingo
這是一個自制功能,我不知道究竟是什麼錯誤,但對類似問題的這個答案可能證明是有用的:http://stackoverflow.com/questions/1525830/how-do-i-use-filesystem -functions功能於PHP-使用UTF-8串 – FMashiro