Нужна помощь с регулярным выражением. Практикуюсь на замене кода в файлах с помощью регулярок. Есть код в файле:
$list = array();
$list[] = '<form method="POST" action="edit">
<a href="title1">Title 1</a>
<input type="submit" name="red" value="Edit Page">
<input type="hidden" name="hidden" value="title1">
<input type="hidden" name="prev" value="'.$_SERVER["REQUEST_URI"].'">
</form>
<form method="POST" action="">
<input type="hidden" name="hidden_delete" value="title1">
<input type="submit" name="red" value="Delete Page"><hr>
</form>';
$list[] = '<form method="POST" action="edit">
<a href="title2">Title 2</a>
<input type="submit" name="red" value="Edit Page">
<input type="hidden" name="hidden" value="title2">
<input type="hidden" name="prev" value="'.$_SERVER["REQUEST_URI"].'">
<hr>
</form>
<form method="POST" action="">
<input type="hidden" name="hidden_delete" value="title2">
<input type="submit" name="red" value="Delete Page"><hr>
</form>';
Написал такую замену:
$link = 'check.php';
$file = file_get_contents($link);
$file = preg_replace('~\$list\[\][^<]+\<.*title1[^;]+\;~s', '', $file);
file_put_contents($link, $file);
В чем суть проблемы. Регулярное выражение удаляет код с title1, не затрагивая другой код. Однако если поставить уже title2, то будет удаляться и title1, и title2. Помогите, пожалуйста, исправить его, чтобы удалять только определенный кусок кода, т.е либо title1, либо title2.
В общем, разобрался с этой проблемой. Может и не совсем правильно, зато работает отлично. Если кто знает вариант лучше, то пишите)
~\$list\[\][^<]+\<[^>]+\>[^<]+\<[^"]+\"title2\"[^;]+\;~
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Доброго времени суток уважаемые форумчане ! Сменил WEB-хостинг перенес php Скрипт а на новом хостинге при открытие страницы выходит какая то билеберда