Поэтому, когда я запускаю json_encode, он также захватывает \ r \ n из MySQL. Я пробовал переписывать строки в базе данных безрезультатно. Я попытался изменить кодировку в MySQL с по умолчанию latin1_swedish_ci на ascii_bin и utf8_bin. Я сделал тонны str_replace и chr (10), chr (13). Я не знаю, что еще сказать или сделать, я просто оставлю это здесь …
$json = json_encode($new); if(isset($_GET['pretty'])) { echo str_replace("\/", "/", jsonReadable(parse($json))); } else { $json = str_replace("\/", "/", $json); echo parse($json); }
Функция jsonReadable отсюда, и функция синтаксиса отсюда . Str_replaces, которые уже есть, потому что я получаю странные отформатированные html-теги, например </ h1>. Наконец, $ new – это массив, созданный выше. Полный код по запросу.
Помогите мне StackOverflow. Ты моя единственная надежда
Строка содержит «\ r \ n» (как в 0x0D 0x0A) или буквальную строку '\ r \ n'? Если это первый, это должно удалить любые новые строки.
$json = preg_replace("!\r?\n!", "", $json);
При желании замените второй параметр «» на «<br />», если вы хотите заменить символы новой строки тегом br. В последнем случае попробуйте выполнить следующее:
$json = preg_replace('!\\r?\\n!', "", $json);
Не заменяйте его в JSON, замените его в источнике перед его кодировкой.
У меня была аналогичная проблема, я использовал:
$p_num = trim($this->recp); $p_num = str_replace("\n", "", $p_num); $p_num = str_replace("\r", ",", $p_num); $p_num = str_replace("\n",',', $p_num); $p_num = rtrim($p_num, "\x00..\x1F");
Не уверен, что это поможет с вашими требованиями.