используйте php, grep и regex для поиска и замены строк кода в файле - PullRequest
1 голос
/ 14 сентября 2010

У меня есть php-файл, который отлично читает содержимое других файлов и возвращает их в виде строки.

$contents = $file->read(); // return as string.

мне нужно иметь возможность искать и заменять определенные строки

строки, начинающиеся с $this->Session->setFlash и заканчивающиеся , true));, должны быть заменены на

строк, начинающихся с $this->Session->setFlash и заканчивается , true), 'default', array('class'=>'flash_failure'));

В моей машине есть grep, если это поможет.

наконец, после изменения содержимого, у меня есть функция, которая запишет содержимое обратно

$file->write($contents);

Я знаю, что это помогает найти строки, но я не знаю, как заменить.

^.*Session->setFlash.*, true\)\);$

Ответы [ 2 ]

1 голос
/ 14 сентября 2010

Вы можете попробовать:

$contents = $file->read(); // return as string.

// change contents.
$contents = preg_replace('/^(\$this->Session->setFlash.*?), true\)\);$/',"$1, true), 'default', array('class'=>'flash_failure'));",$contents);

$file->write($contents);
0 голосов
/ 14 сентября 2010

решение таким образом:

$contents = preg_replace('/^(.*Session->setFlash.*, true\))\);$/m',
                                         "$1, 'default', array('class'=>'flash_failure'));", $contents);

ключевой модификатор мультилинии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...