Intereting Posts
WordPress – как я могу получить больше сообщений через AJAX? Самый быстрый способ подачи файла с помощью PHP «Предупреждение: mysql_query (): предоставленный аргумент не является допустимым ресурсом MySQL-Link" Как я могу вызвать функцию ReflectionFunction, закрывающую закрытие, которое использует $ this? php – установка обновления и удаление проблем – сохранение удаления записей Функция MongoDB GROUP (или Map Reduce, если необходимо) с помощью PHP-отличительных клавиш Как я могу получить PHP-скрипт ** результаты **, включенные в другой скрипт PHP? php echo vs return, какой способ лучше? как запустить php-код на кнопку отправки без обновления / перезагрузки страницы setlocale не влияет на PHP как сделать эскизы с php Максимальное время выполнения 30 секунд Как изменить домашнюю страницу по умолчанию в opencart Генерировать массив из списка, разделенного запятыми, – PHP Является ли сериализация данных опасными с PDO

Замена PHP между тегами

Я ищу быстрый способ заменить текст в строке, которая находится между двумя тегами.

The string contains <!-- Model # Start --> <!-- Model # End --> Tags. 

Я просто хочу заменить то, что находится между тегами, я полагаю, что preg_replace() сделает это, но я не уверен, как заставить его работать.

Solutions Collecting From Web of "Замена PHP между тегами"

Чтобы использовать preg_replace, передайте исходную строку и регулярное выражение – результат сопоставления будет возвращен. Существует не так много, чтобы сказать об этом методе, поскольку вам нужно понимать регулярные выражения, чтобы использовать его.

Вот программное решение, возможно, не самый эффективный код, но дает вам представление о том, что он делает.

 $tagOne = "["; $tagTwo = "]"; $replacement = "Greg"; $text = "Hello, my name is [NAME]"; $startTagPos = strrpos($text, $tagOne); $endTagPos = strrpos($text, $tagTwo); $tagLength = $endTagPos - $startTagPos + 1; $text = substr_replace($text, $replacement, $startTagPos, $tagLength); echo $text; 

Выходы: Привет, меня зовут Грег.

 $tagOne = "["; $tagTwo = "]"; $replacement = "Greg"; $text = "Hello, my name is [NAME] endie ho [NAME] \n [NAME]"; $textLength = strlen($text); for ($i; $i< $textLength; $i++) { $startTagPos = strrpos($text, $tagOne); $endTagPos = strrpos($text, $tagTwo); $tagLength = $endTagPos - $startTagPos + 1; if ($startTagPos<>0) $text = substr_replace($text, $replacement, $startTagPos, $tagLength); } echo $text; 

Обратите внимание, что оператор if, проверяющий, есть ли тег pos слева, в противном случае для всех тегов textlength – #, ваша начальная позиция 0, в этом случае «H», получит gregs 🙂

Вышеуказанные результаты

 Hello, my name is Greg endie ho Greg Greg