我正在构建一个像这样的输出数组
if (count($errors)) {
$success = 'false';
$output['json_msg'] = "Please try your submission again.";
$output['errors'] = $errors;
} else {
$success = 'true';
$output['json_msg'] = "Thanks for Becoming a NOLA Insider!";
}
$output['success'] = $success;
header('Content-type:application/json;charset=utf-8');
if (count($errors)) { http_response_code(500); }
echo json_encode($output);
exit;
但是,当我查看开发者工具的Chrome网络面板中的响应时,我看到响应中出现了新行:
我尝试在trim()中包装json_encode(),但这会产生乱码输出。
如何消除回车?
答案 0 :(得分:4)
您可以尝试使用str_replace
$output = str_replace(array("\r\n", "\n", "\r"),'',$output);
echo json_encode($output);
答案 1 :(得分:2)
如果您在\r\n
之后向json代码中获取json_encode()
等新行字符,则可以使用您获得的最终json_value
跟进该方法。这将删除您执行json_encode()
后获得的代码中输出的所有新行。
因此,您需要preg_replace()
json outputed值,如下所示,它将从json_code
删除新行。
这会将没有值的新行替换为preg_replace()
中的第二个参数。
尽量不要在文档的开头或结尾处理的
php codes
(即)打开和关闭代码之间提供任何白色间距。这有时可能会导致问题。
<强>代码:强>
$output_json = preg_replace("!\r?\n!","", $output_json);
答案 2 :(得分:2)
您的PHP文件末尾是否有?>
以及删除后发生了什么?
因为您可能在脚本末尾有回车符,可能会在回复之前发送:
?>\n
// END OF FILE
这可以解释为PHP实际上是一种模板语言:
这是一个定义函数并显示文本的文件:
<?php
/**
* @File lib.php
*/
function sayHello()
{
echo "hello";
}
?>
forgotten text
这是一个包含此文件的文件。
<?php
/**
* @file index.php
*/
include_once('lib.php');
sayHello();
这将输出:
forgotten text
hello
&#34;被遗忘的文字&#34;包含lib.php文件时输出,而#34;你好&#34;输出之后。
(但它可能更简单,只是@nanocv建议的那一点)
答案 3 :(得分:2)
答案 4 :(得分:-1)
我解决了从function addPlayer(player) {
const winners = [2, 3];
return (
<div>
<li>{`${player.name}${
winners.includes(player.uid) ? " (is Winner)" : ""
}`}</li>
</div>
);
}
中指示的php文件中删除空格的问题。