我需要修改下面的功能,以获得更好的国际角色支持。
它读取.txt文件的目录,并使用file_get_contents()和getBasename()将这些文件导入到站点中。这种方法非常有效,直到发送到getBasename()方法的文件名包含特殊字符,如ąÿż等。
例如,在波兰语中,“Privacy Policy.txt”文件名为Politykaprywatnoÿci.txt
但是,当它导入网站时,页面名称变为:Polityka prywatno
你可以看到它在ÿ
处截止如何修改此功能以支持这样的字符集?
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 :(得分:1)
Php文件系统函数接受,返回ISO-8859-1中的文件名
使用is_file(utf8_decode($filename))
,将在ISO-8859-1中更改带有可表示字符的UTF-8字符。
您的字符是多字节字符,PHP5无法解决它们