Нужна помощь с регулярным выражением php

166
10 ноября 2018, 10:30

Нужна помощь с регулярным выражением. Практикуюсь на замене кода в файлах с помощью регулярок. Есть код в файле:

$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.

Answer 1

В общем, разобрался с этой проблемой. Может и не совсем правильно, зато работает отлично. Если кто знает вариант лучше, то пишите)

~\$list\[\][^<]+\<[^>]+\>[^<]+\<[^"]+\"title2\"[^;]+\;~
READ ALSO
Смена сервера и много ошибок

Смена сервера и много ошибок

Доброго времени суток уважаемые форумчане ! Сменил WEB-хостинг перенес php Скрипт а на новом хостинге при открытие страницы выходит какая то билеберда

152
конвертация HEX в строку

конвертация HEX в строку

Имеется строка 'Привет мир ASCII'Я ее конвертирую в массив:

176
Передать строку PHP в Javascript

Передать строку PHP в Javascript

Есть форма с полем name

161
Json encode проблема с пробелом

Json encode проблема с пробелом

Почему, если обернуть массив в json_encode:

135