У меня есть веб-сайт WordPress 4.9.8, работающий на PHP 7.0.22. Сайт использует кодировку UTF-8. Мне нужно вывести данные заказа в формате ISO 8859-1 на FTP-сервер нашего поставщика услуг. Я преобразовал данные с помощью utf8_decode(), прежде чем записывать их с помощью fputs(). Все это работало нормально.
Но вдруг - я думаю, после обновления wordpress - fputs больше не работает, если данные содержат немецкие символы умлаута. Например. если в данных есть 'Ä', который кодируется как 0xC4 в строке, то fputs ничего не записывает в файл, поэтому данные не экспортируются.
Мне кажется, что в fputs или где-то ниже или в системе есть проверка, все ли символы в строке являются допустимыми символами, и функция прерывается, если включен символ ISO 8859-1.
Это отрывок из моего кода:
$stream = fopen( 'php://output', 'w' );
fputs( $stream, $header ); // working well
$mytext = $this->get_row_csv( $row, $headers ); // get the order data
$mytext1 = utf8_decode($mytext); // convert to ISO 8859-1
fputs( $stream, $mytext1 ); // OK with no umlaut, fails if umlaut is included
Кто-нибудь знает, что изменилось в wordpress или почему fputs перестал работать с этими немецкими символами и что я могу сделать, чтобы написать правильно?