Как добавить поддержку специальных символов, таких как (ę ó ÿ ż, и т. Д.), В файл-io через getBasename () - PullRequest
0 голосов
/ 24 ноября 2011

Мне нужно изменить приведенную ниже функцию для лучшей поддержки международных символов.

Он читает каталог файлов .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);
        }
    }
}

1 Ответ

1 голос
/ 24 ноября 2011

Функции файловой системы Php принимают, возвращают имена файлов в ISO-8859-1

Используйте is_file(utf8_decode($filename)), изменит символ UTF-8 с представимым символом в ISO-8859-1.

Ваши символы являются многобайтовыми символами, и PHP5 не способен к ним обращаться

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...