#!/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腳本。
注:這並不完美,所以您仍然需要手動更改任何錯過的邊緣情況,但它仍然可以爲您節省大量工作。另請注意,這可以進行就地文件編輯。
這些文件的操作系統是什麼? –
@JonathanM:CentOS – Tech4Wilco
@JasonMcCreary是的,這就是爲什麼我問這個問題==> **將ereg更新爲preg_match ** – Tech4Wilco