标题描述了我的问题。 我用PHP解析一个文本文件。 此文件包含Google日历Feed的网址
http://www.google.com/calendar/feeds/example%40googlemail.com/public/full
我可以像这样访问Feed信息
$doc = new DOMDocument();
$doc->load( $feed );
当我用mac textedit保存这个文件时,那么everthing很好。 但是当我用vim在linux或mac上保存它时,那么加载的url是
http://www.google.com/calendar/feeds/example%2540googlemail.com/public/full%0A
请注意,百分号会转换为:% - > %25和线路到%0A
使用此网址我在访问Feed信息时收到错误,因为网址错误。 使用vim保存文本文件有什么问题?编码
的问候, 彼得
答案 0 :(得分:2)
%0A
是换行符的编码。换句话说,您的行结尾在不同的编辑器中是不同的(TextEdit的回车符,vim的换行符)。
如果您希望vim写出CR行结尾,请使用以下命令:
:set fileformat mac
答案 1 :(得分:1)
php.ini中应该有一个参数“auto_detect_line_endings”,通常设置为“Off”。改变它,应该解决问题。
如果这对您不可行,那么您可以在加载输入文档后清理任何不需要的字符。 php函数str_replace()比正则表达式快一点,所以我建议你使用它:
$mystring = str_replace(chr(10), "", $mystring); //remove carriage returns
$mystring = str_replace(chr(13), "", $mystring); //remove carriage returns
我确信DOM / LIBXML库中的某个地方有更高效的解决方案,但我没有对它进行过调查。