2012-05-09 5 views
0

Можно создать дубликат:
Converting ereg expressions to pregEREG() для preg_match() для PHP 5.3/4 миграции с использованием регулярного выражения

Мой план: Откройте каждый PHP файл и прочитать его строки один за другим один. Если есть функция ereg(), замените ее на preg_match(), а аргумент шаблона заключите в косые черты '/'.

При чтении файла, если я получаю следующую строку, как заменить «ereg» на «preg_match» и «pattern» на «шаблон, заключенный в косые черты (/)», используя регулярное выражение?

$test = ereg('\.([^\.]*$)', $file_src_name, $extension); // Old PHP 

в

//PHP migration fix 

//$test = ereg('\.([^\.]*$)', $file_src_name, $extension); // Old PHP 

$test = preg_match('/\.([^\.]*$)/', $file_src_name, $extension); // PHP 5.3/4 

, если это возможно, я могу дать это в папку и она будет преобразовывать все файлы, совместимые с PHP 5.3/4.

Примечание: Старый код должен быть там, как заметил, что именно поэтому я не использую находку любого редактора и заменить

+0

У вас есть * это * много регэкспы? Если нет, делать это вручную, вероятно, быстрее, чем писать сценарий для него. – ThiefMaster

+0

@ThiefMaster: да, мой проект действительно старый, поэтому используется так много ereg, eregi, ereg_replace, split. Я определил весь несовместимый код с PHP_CodeSniffer. – San

+0

preg_replace ("/ \ bereg [\ s] * \ (\ '(. *?) \' /", "Preg_match (\"/$ 1/\ "", $ myLine); - что-то вроде этого работает как я Ожидаемый! – San

ответ

0
$test =preg_match('/\.([^\.]*)$/i', $file_src_name, $matches); 
$extension = $matches[1]; 
+0

Так как это помогает OP? –

+0

Извините, что вы подразумеваете под 'OP'? – San

+0

@San вы OP :) –