我需要修改下面的函数以获得更好的国际字符支持。
它读取一个.txt文件目录,并使用file_get_contents()和getBasename()将这些文件导入站点。直到发送给getBasename()方法的文件名包含特殊字符,如::::::::::::
例如,在波兰语中,"Privacy Policy.txt"文件名为Polityka prywatnoÿ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);
}
}
}
Php文件系统函数接受并返回ISO-8859-1格式的文件名
使用is_file(utf8_decode($filename))
,将UTF-8字符改为ISO-8859-1中可表示的字符。
您的字符是多字节字符,PHP5无法对它们进行寻址