Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否从PHP变量值中删除换行符和新行?_Php_Json_File Get Contents - Fatal编程技术网

是否从PHP变量值中删除换行符和新行?

是否从PHP变量值中删除换行符和新行?,php,json,file-get-contents,Php,Json,File Get Contents,我有一个PHP脚本,可以执行以下操作: 使用file_get_contents()获取html文件的内容 回显JSON对象 问题是从文件\u get\u内容中获取的值是多行的。为了使用正确的JSON格式,它需要全部放在一行上 比如说 PHP文件: $some_json_value = file_get_contents("some_html_doc.html"); echo "{"; echo "\"foo\":\"$some_json_value\""; echo "}"; 生成的ht

我有一个PHP脚本,可以执行以下操作:

  • 使用file_get_contents()获取html文件的内容
  • 回显JSON对象
问题是从文件\u get\u内容中获取的值是多行的。为了使用正确的JSON格式,它需要全部放在一行上

比如说

PHP文件:

$some_json_value = file_get_contents("some_html_doc.html");

echo "{";
echo "\"foo\":\"$some_json_value\"";
echo "}";
生成的html文档如下所示:

{
foo: "<p>Lorem ipsum dolor 
sit amet, consectetur 
adipiscing elit.</p>"
}

您可以将所有出现的\n和\r替换为“”。退房。

是否进行简单的更换

$content = str_replace(
    array("\r\n", "\n", "\r"), 
    '',
    file_get_contents('some_html_doc.html')
);
但更好的办法是马上做一个测试

$content = json_encode(file_get_contents('some_html_doc.html'));

除了换行符之外,还有其他字符会给您带来问题(例如双引号和反斜杠),因此,与其去掉换行符,不如对JSON进行正确编码。对于PHP>=5.2,有内置的
json\u encode
函数,并且有可用于旧版本PHP的库(参见示例)

我不想删除\n而且\r\n是一个换行符。。。正如你的主体所说。您仍然可以在调用preg_replace时应用相同的原则。您也可以这样做:echo json_encode(array('foo'=>$some_json_value));谢谢它解决了我在JS VAR中保存一些填充了标签内容的问题+1.
$content = str_replace(
    array("\r\n", "\n", "\r"), 
    '',
    file_get_contents('some_html_doc.html')
);
$content = json_encode(file_get_contents('some_html_doc.html'));