如何添加对特殊字符的支持,如()ó& # 255;通过getBasename()将其转换为file-io


How to add support for special character like (ą ę ó ÿ ż, etc) to file-io via getBasename()

我需要修改下面的函数以获得更好的国际字符支持。

它读取一个.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无法对它们进行寻址