С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 25.10.2019
Сообщений: 23

Не работает замена слов

08.01.2021, 16:22. Показов 1209. Ответов 3

Студворк — интернет-сервис помощи студентам
В общем такая проблема, есть такой код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<? 
    $a=0;
    $string = $Elem['information'];
    $a = substr_count($string, '<p class="subtitle">'); //узнаем кол-ва совпадений
    $Search = array('<p class="subtitle">','</p>'); //то что будем заменять
    do{
    $a--;
    $Repls   = array('<Text class="subtitle"><a name="'.$a.'">','</a></text>'); //на что меняем
    $text    = $Elem['information'];
    $output  = preg_replace($Search, $Repls, $text,1);//функция замены с лимитом в 1 замену за цикл
        }while($a>0);
    
    echo $output; ?>
По моей логике он должен заменять, то что находится в $Search из массива $text, командой preg_replace с лимитом 1 раз, и спустя цикл заменить значение $a в $Repls и опять прогнать и так до окончания цикла, но почему то сначала он менял все, игнорируя цикл и ставя последнее значение $a(=0),а потом и вовсе стал обновлять только первое вхождение строки.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.01.2021, 16:22
Ответы с готовыми решениями:

Не работает замена слов
Уважаемые программисты, прошу объяснить мне, что не так с этим кодом и что с ним можно и нужно сделать. Нужно переделать курсовую (каюсь,...

Некорректно работает замена слов в файле
#include &lt;string.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;windows.h&gt; #include &lt;stdlib.h&gt; #include &lt;io.h&gt; #include...

Составление списка всех слов текста и замена слов на число, обозначающее номер этого слова в списке
Помогите написать программу. Формат входных данных: В единственной строке входных данных приводится строка длиной не более миллиона...

3
Невнимательный
 Аватар для ft4l
2840 / 1270 / 358
Регистрация: 08.02.2013
Сообщений: 7,398
Записей в блоге: 2
08.01.2021, 17:12
Лучший ответ Сообщение было отмечено Strekach как решение

Решение

Можно как-то проще попробовать ... кучу текста обернуть в <a></a>
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cat <<\x | /c/srv/usr/php74/php
 
<?php
$txt =' Text ...
<p class="subtitle"> text2 </p>
 <p class="subtitle"> text3 </p>
text
 <p class="subtitle"> text5 </p>
';
$txt = preg_replace_callback('#<p class="subtitle">(.*?)</p>#s', function($m){
  static $i=0;
  return '<Text class="subtitle"><a name="'.++$i.'">'. $m[1] .'</a></text>';
  }, $txt);
echo $txt;
x
 
 Text ...
<Text class="subtitle"><a name="1"> text2 </a></text>
 <Text class="subtitle"><a name="2"> text3 </a></text>
text
 <Text class="subtitle"><a name="3"> text5 </a></text>
... если не будет вложеных <p></p>
0
0 / 0 / 0
Регистрация: 25.10.2019
Сообщений: 23
08.01.2021, 18:10  [ТС]
Спасибо! Действеный способ, чутка переделал, под свой код, все заработало, даже получилось лучше чем чем я хотел!
Единственое я не понял что означает Cat.... буду благодарен, если обясните
0
Невнимательный
 Аватар для ft4l
2840 / 1270 / 358
Регистрация: 08.02.2013
Сообщений: 7,398
Записей в блоге: 2
08.01.2021, 19:09
Цитата Сообщение от Strekach Посмотреть сообщение
Cat....
Bash
1
2
3
4
5
6
7
zzz@zz MINGW32 ~
$ cat --help
Использование: cat [ПАРАМЕТР][ФАЙЛ]…
Печатает слияние ФАЙЛ(ов) на стандартный вывод.
 
Если ФАЙЛ не задан или задан как -, читает стандартный ввод.
... всякие параметры
<<\x
....
x
типа heredoc но не heredoc а nowdoc ))
... как в php
PHP
1
2
3
$var = <<<'xxx' 
любой текст с любыми кавычками
xxx; # nowdoc потому что xxx в апострофах
В итоге как-бы вывод на STDOT встраиваемого в команду содержимого файла передаёётся "по конвееру" |
на STDIN интерпретатора c:/srv/usr/php74/php.exe
который выводит echo $txt;

Не по теме:


но у меня вин7 в данный момент , а там в консоли не знаю как не создавая файл вывести многострочный например php-код
... поэтому использовал консоль lk MINGW32 от MSYS2 ) в линуксах вроде всё так-же но php вместо /c/srv/usr/php74/php

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.01.2021, 19:09
Помогаю со студенческими работами здесь

Замена букв в предложении. Не работает замена кириллицы
Суть программы заменить все определенные буквы в предложении на другую. Собственно, вот код. Латиницу заменяет как надо. Но если ввести...

замена слов
Помогите пожалуйста решить следующее задание! Заранее благодарен. Условие задания: ТЕКСТ, Слова, которые надо заменять и подстроку...

Замена слов
также как ассоциации не несет в себе большой смысловой нагрузки , правила простые 1. дается исходная фраза 2. нужно заменить одно...

замена слов
есть текст FastTemplate - это набор классов, позволяющих реализовать работу с шаблонами. Как сделать замену текста от слова до слова...

Замена слов
Задача такова: Есть предложение, например: Это какое-то предложение, в котором есть слово1, слово2, слово3. Необходимо, чтобы...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru