【发布时间】:2013-08-15 14:12:25
【问题描述】:
您好,我正在尝试运行一个简单的 php 文件,打开、替换和保存。这是我的代码:
//open file and get data
$data = file_get_contents("input.xml");
// do tag replacements or whatever you want
$data = str_replace("<Property>", "<item>", $data);
$data = str_replace("</Property>", "</item>", $data);
//save it back:
file_put_contents("output.xml", $data);
我的文件打开、替换并保存文件。但是当我打开文件时,我注意到之前只有一个换行符的每个项目后面都有一个额外的换行符。
我测试了将数据直接打印到浏览器,发现file_get_contents 中引入了额外的换行符,而不是在写回新文件时。
有人知道如何防止这些额外的换行符被引入吗?
谢谢!
【问题讨论】:
-
浏览器调试不是检测空白字符存在的最可靠方法。请改用
urlencode()- 它不是为此目的而设计的,但非 ascii 可打印字符将使用其十六进制值进行编码。 -
可能是 CRLF 与 LF、windows 与 unix 换行符的问题。
-
似乎是
\n和\r\n换行符的问题。 -
hm..我的系统是unix,但是我得到的文件可能来自windows,你是说我应该先转换文件吗?我假设有一些 php 命令可以让我这样做?
-
你也可以
str_replace("\r\n", "\n", $data);
标签: php file-get-contents