При создании ответа для XHR-запросов в PHP с использованием ob_get_clean () и json_encode, ответ содержит ненужные новые строки ( / r , / n ) и вкладки ( / т ).Они не служат никакой видимой цели для пользователя, но в любом случае потребляют пропускную способность.
Удаление их с помощью str_replace
решает проблему, в то же время вызывая другую: она также удаляет необходимые разрывы строк в текстовых областях.
header("Content-Type: application/json; charset=utf-8");
ob_start();
echo "
test
<textarea>
</textarea>
test
";
$test = json_encode(ob_get_clean());
echo $test;
Вывод:
\r\ntest\r\n<textarea>\/r\/n<\/textarea>\r\ntest\r\n
Удаление их с помощью str_replace:
header("Content-Type: application/json; charset=utf-8");
ob_start();
echo "
test
<textarea>
</textarea>
test
";
$test = ob_get_clean();
$test = str_replace(PHP_EOL, NULL, $test);
$test = json_encode($test);
echo $test;
Вывод:
test<textarea><\/textarea>test
Однако:
Как избавиться от / r / n и / t , не испортив текстовых областей?
Более открыто спросили:
Есть ли другое (или лучшее) решение для присоединения нескольких строк html-элементов к переменной, отличной от ob_start()
и ob_get_clean()
?