<?php $string = " Я не поеду в Москву. Москва замечательный город, но цены в Москве очень высокие."; $array = array ( 1 => "Москве", 2 => "Москвой", 3 => "Москва", 4 => "Столица России"); array_map('preg_quote', $array); $preg = '/('.join('|', $array).')/'; $string = preg_replace($preg, "<b>$1</b>", $string, 1); echo $string;
Гениально! Спасибо!!!
Огромное спасибо! Отлично работает!
Подскажите пожалуйста, как доработать эту функцию:
дело в том что если строка имеет вид:
$string = "Голосовой работает на базе технологии <a href=\"/помощник.html\">помощник</a> нейронных сетей помощник, голосовой помощник работает".
то после обработки она:
Голосовой работает на базе технологии <a href="/помощник.html">помощник</a> нейронных сетей <a href="/помощник.html">помощник</a>, голосовой помощник работает.
Т.е. на слово помощник 2 ссылки.
Мне нужно чтобы регулярка проверяла, что между тегами <a></a> "помощник" не единственное слово и если слово в тегах единственное, то замена не производится совсем! Чтобы не было одинаковых ссылок на странице..
С П А С И Б О
разобрался, спасибо!
Пожалуйста подскажите как запустить эти процессы?
я пробовал:
sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
Раньше этого было достаточно. Не знаю что произошло
Почему? Что в этом плохого? Адресная строка смотрится более естественно и читабельнее. Кстати проблема решена. У меня не получалось потому что я не тот файл редактировал. По глупости короче.
Отправлено с моего SM-T231 через Tapatalk
/^([^\r\n\t]+)$/mg
Спасибо! То что нужно!
/^([\s\S]*)$/g
Спасибо но немножко не то. С этим рег.выражением он выводит:
<p>Строка 1
Строка 2
Строка 3</p>
А мне нужно:
<p>Строка 1</p>
<p>Строка 2</p>
<p>Строка 3</p>
Помогите доработать!
$text ="текст [45] текст [78] текст [31] текст [19] текст"; $array = array( 19 => "<img src='19.jpg'>", 24 => "<img src='24.jpg'>", 45 => "<img src='45.jpg'>", 78 => "<img src='78.jpg'>", ); foreach($array as $key => $value){ $text = str_replace ("[$key]",$value,$text); } echo $text;
аа. я думал можно как то без цикла обойтись. теперь понятно, спасибо
Одну минуту..
Я правильно понимаю что мы в тесте заставляем выполняться этот код 100 000 раз и это занимает меньше секунды?
Если это так, то мне кажется такая нагрузка вообще пренибрежимо мала (скрип будет выполняться 1 раз при запросе) и тут особо нет разницы что использовать
Спасибо!
Я скопировал ваш код и вот мои результаты:
время выполнения 1 0.28654098510742 секунд
время выполнения 2 0.8086371421814 секунд
Поменял местами:
время выполнения 2 0.81029081344604 секунд
время выполнения 1 0.25031208992004 секунд
Интересно, почему у нас с вами такая разница?---------- Добавлено 06.04.2017 в 17:31 ----------
Я правильно понимаю что можно это сделать с помощью функции str_replace без использования цикла?
Никак не соображу что нужно сделать. Конечно хотелось бы наиболее производительный код..
Вот что у меня получается:
$text ="текст [45] текст [78] текст [31] текст [19] текст";
$array1 = array(
1 => "[45]",
2 => "[78]",
3 => "[31]",
4 => "[19]",
);
$array2 = array(
19 => "<img src=\"19.jpg\">",
24 => "<img src=\"24.jpg\">",
45 => "<img src=\"45.jpg\">",
78 => "<img src=\"78.jpg\">",
$newphrase = str_replace($array1, $array2, $text);
echo $newphrase;
результат:
текст <img src="19.jpg"> текст <img src="24.jpg"> текст <img src="45.jpg"> текст <img src="78.jpg"> текст---------- Добавлено 06.04.2017 в 17:33 ----------
Не устраивает только одном: я никак не соображу как с помощью него это сделать!