0

使用 ob_get_clean() 和 json_encode 使用 PHP 为 XHR 请求创建响应时,响应包含不必要的新行(/r/n)和制表符(/t)。它们对用户没有明显的目的,但无论如何都会消耗带宽。

删除它们可以str_replace解决问题,同时会导致另一个问题:它还删除了 textareas 中必要的换行符。

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()and之外的变量ob_get_clean()

4

0 回答 0