Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
lebedmityaj
1 / 1 / 1
Регистрация: 13.11.2017
Сообщений: 28
1

Регулярные выражение preg_replace

14.06.2018, 11:31. Просмотров 733. Ответов 3
Метки нет (Все метки)

Здравствуйте, стоит у меня задача заменить определенный блок на свой.
HTML5
1
2
3
4
5
6
7
8
9
какой-то текст или кой-то другой HTML код
<p>
   <a атрибуты какие-то>
      <span>
         <img атрибуты какие-то>
      </span>
   </a>
<p>
и дальше пошёл какой-то текст или HTML код
и нужно заменить на
HTML5
1
2
3
4
5
какой-то текст или кой-то другой HTML код
<figure>
   <img атрибуты какие-то>
</figure>
и дальше пошёл какой-то текст или HTML код
То есть мне нужно найти такую структуру блока и заменить на свою. Делаю поиск и замену в HTML (не в строке а именно в сущности HTML)

Вот так делаю:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function ClearHTML($full_story){
 
    //какие теги ищем (мусор)
    $mas_tg = array(
        "~<p><a(.*?)><span><img(.*?)></span></a></p>~si",
    );
 
    //заменяем на нужные теги
    $mas_tg_s = array(
        "<figure><img$2></figure>",
    );
 
    //делаем замену
    $full_story = preg_replace($mas_tg, $mas_tg_s, $full_story);
 
    return $full_story;
}
Что я делаю не так?

Добавлено через 7 минут
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2018, 11:31
Ответы с готовыми решениями:

Регулярные выражение
Доброго времени суток!! Я понимаю, что мой вопрос для кого-то покажется простым , но все же... ...

Preg_replace
Дело в том что я заменяю :001: на &lt;img src='https://orange-paradise.net/smiles/002.gif'&gt;. Но почему...

Preg_replace
http:\/\/uploads.net\/598000\/598087.swf Нужно что бы было вида обычной ссылки...

preg_replace()
Здравствуйте. Вот код: $xxx=preg_replace(&quot;&lt;&quot;.$i.&quot;&gt;&quot;,&quot;IMG SRC=image/&quot;.$i.&quot;.jpg&quot;,$xxx); i...

Preg_replace
Приветствую! Такое дело: Есть регулярка, которая сравнивает два поля и удаляет повтор строки...

3
Jewbacabra
Эксперт PHP
4040 / 3321 / 1429
Регистрация: 24.04.2014
Сообщений: 10,022
14.06.2018, 11:32 2
Лучший ответ Сообщение было отмечено lebedmityaj как решение

Решение

Что я делаю не так?
Неправильно выбираешь инструмент. Регулярки плохо подходят для разбора html. Что-то типа DOMDocument тут более уместно
1
lebedmityaj
1 / 1 / 1
Регистрация: 13.11.2017
Сообщений: 28
14.06.2018, 11:38  [ТС] 3
Jewbacabra, понял, регулярки больше всего подходят для обычного текста как я понял?
0
edward_freedom
1559 / 1438 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
14.06.2018, 12:47 4
lebedmityaj, Для всего, кроме html, xml, json. Для каждого есть свои инструменты
1
14.06.2018, 12:47
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2018, 12:47

Preg_replace (\r\n,\n,\r)
Есть текст в переменной допустим $text: Текст*далее куча пробелов*потом опять текст а далее,...

Из preg_replace в preg_replace_callback
Нужно изменить это $title=preg_replace(&quot;#&lt;\!\\]&gt;#eis&quot;,&quot;'\\1'&quot;,$title); ...

тупость с preg_replace
Привет. Не срабатывает ф-я preg_replace. Я хочу из url убрать протокол, но ф-я показывает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.