“意外的EOF”:如何从php代码中删除所有换行符?

时间:2012-01-16 06:36:19

标签: php javascript regex

我有一个正在读取(file_get_contents)文件的php脚本。我想用br替换所有换行符,并删除所有其他字符。但是,在将内容解释为javascript变量时出现错误。

我认为有罪的一方是“^ Z”角色,但我不知道如何摆脱它。 “^ M”是一个git字符,我相信“^ Z”实际上是字符串本身的一部分。

如何在php中删除此角色?

enter image description here


好的,之前我的问题是错的,所以我用新内容更新了它。

如何确保从php字符串中删除所有换行符?使用file_get_contents读入此字符串,然后使用文件内容动态创建javascript。 “\ n”替换为“NEW”,“\ r”替换为“”。

然而,我收到一个“意外的EOF”错误,当我复制字符串并将其粘贴到控制台时,有些东西给了我换行符。如何确保修剪所有换行符(空白区域)?

trim() str_replace preg_replace

已经全部使用过,非常感谢任何帮助!

SyntaxError: Unexpected EOF

2 个答案:

答案 0 :(得分:3)

CTRL-Z 是文本文件的DOS / Windows文件结束字符。如果你检查输入文件,你可能会在那里找到那个角色。

它源于最早的时期(CP / M不低于),当文件是磁盘扇区大小的精确倍数时,您不能拥有不是该文件的倍数的文件。

因此,如果您想提前结束文件,则在文件读取例程可以理解的位置放置一个特殊的文件结束符。对于二进制文件来说这不是一个真正的问题,因为它们最后是否有无关的信息并不重要 - 它很可能会被忽略。但是,你在你漂亮的WordStar 3.3文档结尾处不想要任何垃圾。

^Z字符的代码是26,因此应该能够str_replace使用\x1a字符,例如:

$str = str_replace ("\x1a", "", $str);

答案 1 :(得分:0)

首先,首先,没有git角色这样的东西。

^ M是回车的代码,它可能来自使用该文件的Windows机器。

^ Z看起来可能是你在这里可以阅读的“替代”角色:http://en.wikipedia.org/wiki/Substitute_character,基本上它意味着“我不知道如何在这个地方代表角色”

那就是说,我看到paxdiablo已经发布在我之前,而且该代码应该可以解决问题。祝你的项目好运!