Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
 Аватар для skapunker
-30 / 25 / 12
Регистрация: 13.12.2013
Сообщений: 1,459

Как заменить сразу несколько строк preg_replace?

25.09.2019, 17:56. Показов 1758. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья! Подскажите пожалуйста, как заменить несколько строк сразу.

Вот у меня есть

HTML5
1
$app_code = preg_replace( "/<\/style>/", $style . '</style>', $app_code);
А если мне нужно заменить еще и другие строки в этой переменной. Как быть?

Добавлено через 19 секунд
или может функция другая есть
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.09.2019, 17:56
Ответы с готовыми решениями:

Как закомментировать сразу несколько строк
Доброй ночи! Раньше кнопка рамирования была на панели, теперь, после переустановки, пропала оттуда - проблема. Как вернуть все назад? И...

как удалять несколько символов сразу из строк?
как удалять несколько символов сразу из строк? к примеру: Удалить часть символьной строки, заключенной в скобки (вместе со скобками).

Как переместить несколько строк кода сразу?
Как выделить несколько строк кода и подвинуть вправо?

8
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
25.09.2019, 20:09
preg_replace_all есть еще
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
25.09.2019, 20:42
andyyy, а где можно почитать её описание? А то в мануале такой функции нет.
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
25.09.2019, 21:41
Цитата Сообщение от Строитель Посмотреть сообщение
andyyy, а где можно почитать её описание? А то в мануале такой функции нет.
перепутал с preg_match_all
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
25.09.2019, 21:56
Цитата Сообщение от andyyy Посмотреть сообщение
preg_match_all
preg_match_all не подходит для ТС, т.к. она ищет вхождения, вместо замены.

Добавлено через 1 минуту
Цитата Сообщение от skapunker Посмотреть сообщение
как заменить несколько строк сразу
С помощью preg_replace() и можно. Если у вас не получается, значит вы что то делаете не так. preg_replace() умеет работать и со строковыми параметрами, и с массивами.
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
25.09.2019, 22:12
Используйте
preg_replace_callback_array
PHP >=7
0
 Аватар для skapunker
-30 / 25 / 12
Регистрация: 13.12.2013
Сообщений: 1,459
26.09.2019, 08:39  [ТС]
Пробовал массивы сделать, ничетра не получилось. Незнаю что делать, временно устнановил две замены. Но с точки зрения оптимизации это ересь. Вот это надо преобразовать.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    $a = '/<head>/';
    $b = '<head><base href="https://p.site.com/">';
    $app_code = preg_replace( $a, $b, $app_code);   
    
    
    // это наш стиль
    
    $style = '  
        .cp-Header__navLink.--active {background-color:#FFF;color:#000} 
    ';  
    
    // добавляем стиль в страницу
    
    $app_code = preg_replace( "/<\/style>/", $style . '</style>', $app_code);
    
    //выводим в эхо
    
    echo $app_code;
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
26.09.2019, 12:23
Цитата Сообщение от skapunker Посмотреть сообщение
Пробовал массивы сделать, ничетра не получилось
Из вашего примера не видать, где пробы с массивами. Должно быть нечто такое:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
$style = '  
        .cp-Header__navLink.--active {background-color:#FFF;color:#000} 
    ';
 
$pattern = ['~<head>~', '~</style>~'];
$replace = ['$0<base href="https://p.site.com/">', $style . '$0'];
 
$app_code = preg_replace($pattern, $replace, $app_code);
 
//выводим в эхо
echo $app_code;
1
 Аватар для skapunker
-30 / 25 / 12
Регистрация: 13.12.2013
Сообщений: 1,459
26.09.2019, 16:00  [ТС]
Цитата Сообщение от Строитель Посмотреть сообщение
Из вашего примера не видать, где пробы с массивами.
с массивами не получилось, это я рабочий вариант скинул. Щас ваш пропробую.

Добавлено через 4 минуты
В общем разобрался. Рабочий вариант по простому
PHP
1
2
3
4
5
    $a[0] = '/<head>/';
    $a[1] = "/<\/style>/";
    $b[0] = '<head><base href="https://p.site.com/">';
    $b[1] =  $style . '</style>';
    $app_code = preg_replace( $a, $b, $app_code);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.09.2019, 16:00
Помогаю со студенческими работами здесь

Как VBA закомментировать сразу несколько строк?
как VBA закомментировать сразу несколько строк, чтоб каждую не начинать ковычками?

Как вставить сразу несколько строк в таблицу Word
Здравствуйте. Подскажите, можно ли вставить сразу несколько строк в таблицу Word без Selection?

Как закомментировать сразу несколько строк (типа /* Rem */), а то ставить ' в каждой строке запарно?
Можно ли закомментировать сразу несколько строк? Может с помощью каких-нибудь дополнительных утилит (например, выделил текст, нажал кнопку...

Preg_replace как заменить
Здравствуйте всем есть текст test :joy: :joy: вот такой мне надо заменить в такой test &lt;span&gt; :joy:&lt;/span&gt;...

Функция изменяющая сразу несколько строк
Нужно, чтобы функция редактировала несколько входящих строк. char str1; char str2; void function1(char*&amp; str1, char*&amp;...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru