#!/bin/bash
perl -p -i -e "s/eregi_replace *\\( *\"([^\@]+?)(?<\!\\\\)\", */preg_replace(\"\@\\1\@i\", /g" $1
perl -p -i -e "s/eregi_replace *\\( *\'([^\@]+?)(?<\!\\\\)\', */preg_replace(\'\@\\1\@i\', /g" $1
perl -p -i -e "s/ereg_replace *\\( *\"([^\@]+?)(?<\!\\\\)\", */preg_replace(\"\@\\1\@\", /g" $1
perl -p -i -e "s/ereg_replace *\\( *\'([^\@]+?)(?<\!\\\\)\', */preg_replace(\'\@\\1\@\', /g" $1
perl -p -i -e "s/eregi *\\( *\"([^\@]+?)(?<\!\\\\)\", */preg_match(\"\@\\1\@i\", /g" $1
perl -p -i -e "s/eregi *\\( *\'([^\@]+?)(?<\!\\\\)\', */preg_match(\'\@\\1\@i\', /g" $1
perl -p -i -e "s/ereg *\\( *\"([^\@]+?)(?<\!\\\\)\", */preg_match(\"\@\\1\@\", /g" $1
perl -p -i -e "s/ereg *\\( *\'([^\@]+?)(?<\!\\\\)\', */preg_match(\'\@\\1\@\', /g" $1
这是我使用的一个小 bash 脚本。比我有更多时间的人可能可以将所有这些压缩成更少的(1?)正则表达式,但它应该可以解决问题。随意替换@
为您选择的分隔符。只需将其粘贴到文件中,chmod +x
然后调用它,将文件作为参数传递。
如果你需要大量使用它,这样的东西就足够了:
find /path/to/your/project -name '*.php' -exec foo {} \;
foo
您命名的 bash 脚本在哪里。
注意:这并不完美,因此您仍然需要手动更改它遗漏的任何边缘情况,但它仍然可以为您节省大量工作。另请注意,这会进行就地文件编辑。