2011-11-24 59 views
0

我需要修改以下函數以獲得更好的國際字符支持。如何通過getBasename()將特殊字符(如等)等支持添加到file-io

它讀取.txt文件的目錄並使用file_get_contents()和getBasename()將這些文件導入到站點中。直到發送到getBasename()方法的文件名包含特殊字符(如±)等,

例如,在波蘭語中,「Privacy Policy.txt」文件被命名爲Politykaprywatnoÿci.txt

但是,當其導入到該網站,頁面的名稱變爲:Polityka prywatno

你可以看到,它切斷時,Y

我怎麼能修改此功能支持字符集一樣, ?

function insert_pages(){ 
DEFINE ('PAGES', dirname(__FILE__).'/pages/'); 
$directory_pages = new DirectoryIterator(PAGES); 
foreach ($directory_pages as $files_pages) 
    { 
    if ($files_pages->isFile()) 
     { 
     $file_name_page = $files_pages->getFilename(); 
     $my_page_content = file_get_contents(PAGES. $file_name_page); 
     $my_page['post_content'] = addslashes($my_page_content); 
     $my_page['post_title'] = $files_pages->getBasename('.txt'); 
     $my_page['post_type'] = 'page'; 
     $my_page['post_status'] = 'publish'; 
     wp_insert_post($my_page); 
     } 
    } 
} 
+0

什麼是你的文件的字符編碼 – abcde123483

+0

您可以將文件名轉換成實體和進口在site.http的:// WWW。 zytrax.com/tech/web/entities.html – devtut

回答

1

PHP文件系統函數接受,在ISO 8859

使用is_file(utf8_decode($filename))返回文件名,將改變UTF-8字符在ISO-8859-1表示的字符。

你的字符是多字節字符和PHP5是不能夠解決這些問題

+0

+1這是問題的一半。另一半是當WordPress插件管理器傳輸文件時,它將其重命名爲Polityka prywatnoy''ci.txt – RegEdit

相關問題