此代码工作了几周,现在又返回错误。关于什么是migth发生的任何建议?我正在解析的网站似乎做了一些小改动,导致我的解析器窒息...
想象一下文件test.html
中的跟随字符串(没有点)
... </script> <script type="text/javascript" src=" ...
所需的字符串转换
Replace <script type="text/javascript" with <tagkilled
使用以下 php代码
$file = "test.html";
// Destroy javascript codetag
$command='/bin/sed -ri \'s/<script type="text\/javascript"/<tagkilled/g\' '.str_replace(' ','\ ',$file);
exec($command);
返回错误消息
/bin/sed: -e expression #1, char 34: Invalid preceding regular expression
旁注:运行sed 4.2.1 2010年12月在Ubuntu 12.10上。
答案 0 :(得分:3)
这适用于GNU sed,尝试将sed的s
命令中的斜杠替换为另一个字符:s#search#replace#[flags]
:
$ cat file
</script> <script type="text/javascript" src="
$ sed 's#<script type="text/javascript"#<tagkilled#g' file
</script> <tagkilled src="
这里不需要g
。
您不应该使用Regex处理html,xml,json和类似的文件格式。使用html-parsing工具。