PHP вставляет текст до и после строки - PullRequest
2 голосов
/ 18 марта 2012

Я довольно новичок в PHP и у меня есть строка, которая содержит HTML-страницу.Мне нужно вставить какой-то пользовательский код ДО и ПОСЛЕ любого тега HR HTML.Пример:

    <html>
    ....
     <p>INSERT HERE</p> 
     <hr class="pagebreak">
     <p>INSERT HERE</p> 

     <p>INSERT HERE</p> 
     <hr class="pagebreak">
     <p>INSERT HERE</p> 
    ....
    </html>

Я пробовал с несколькими комбинациями preg_replace и substr_replace , однако мне все равно не удалось вставить пользовательский код во все местаЯ нуждаюсь.Кто-нибудь может помочь мне решить эту загадку?PS Мне нужно использовать стандартные строковые функции PHP - я не могу использовать любую библиотеку для разбора HTML, так как не могу контролировать библиотеки PHP, доступные на сервере.Большое спасибо, Линда

Ответы [ 2 ]

2 голосов
/ 18 марта 2012

Все, что вам нужно, это хорошее регулярное выражение, при условии, что вам удалось заставить его работать хотя бы частично, возможно, у вас плохое выражение (пример поможет).Я протестировал этот код для вас, и он должен работать на всех ваших <hr> s:

$newtext=preg_replace("#(<hr[^>]*>)#s",$yourprefix."\${1}".$yoursuffix,$oldtext);

переменной oldtext - это то, что вы имели раньше, новый текст - то, что вы хотите, а префикс и суффикс - то, что вы хотитедобавить вокруг тега hr

1 голос
/ 18 марта 2012
$before = '<p>Before the hr tag</p>';
$after = '<p>After the hr tag</p>';

$str = preg_replace('/(<hr(.*?)>)/i',$before.'$1'.$after,$str);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...