Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> заменить слова на url, заменить слова на ссылки 
:(
    Опции темы
web321
Дата 27.5.2010, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.11.2007

Репутация: нет
Всего: нет



Требуется все слова (слово1, слово2, слово3) заменить на ссылки (<a href="url">слово1</a>) при этом должны обрабатываться целиком фразы то есть например "слово1111" - должно остаться без изменений

Код

$reg="/(?<=[\s[:punct:]]|^)(".$s.")(?=[\s[:punct:]]|$)/miu";
$tmp = preg_replace($reg,'<a href="http://url">\\1</a>', $text);


вроде бы работает, но проблема в том, что если слово уже является ссылкой - оно все равно повторно заменяется (получается ссылка в ссылке). Как проверить на отсутствие символов '>' и '<' в начале и конце слова ?

Это сообщение отредактировал(а) web321 - 27.5.2010, 17:15
PM MAIL   Вверх
web321
Дата 28.5.2010, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.11.2007

Репутация: нет
Всего: нет



неужели никто не знает? smile
PM MAIL   Вверх
ksnk
Дата 28.5.2010, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 12
Всего: 386



Код

 $reg="/\b((?<!>)(?!<)".$s.")\b/mi";
 $tmp=preg_replace($reg,"<a href=\"http://url\">\\1</a>", $text);



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
web321
Дата 31.5.2010, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.11.2007

Репутация: нет
Всего: нет



Цитата(ksnk @ 28.5.2010,  18:06)
Код

 $reg="/\b((?<!>)(?!<)".$s.")\b/mi";
 $tmp=preg_replace($reg,"<a href=\"http://url\">\\1</a>", $text);

увы, так вообще замена не производиться :(
PM MAIL   Вверх
ksnk
Дата 31.5.2010, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 12
Всего: 386



Код

//setlocale(LC_ALL,'ru_RU.CP1251');
function repl($s,&$text){
  $reg="/\b((?<!>)(?!<)".$s.")\b/mi"; 
  $text=preg_replace($reg,"<a href=\"http://url\">\\1</a>", $text);
};

$text="«Ваш новый ноутбук — это не только прекрасный рабочий инструмент, но и отражение вашего стиля, вашей яркой индивидуальности». Примерно такие слова обычно говорят нам производители. Впрочем, какая же это индивидуальность, если точно такой же гаджет есть еще у тысяч людей? Мне всегда хотелось сделать все по-своему, так, как больше нет ни у кого.";

echo $text."<hr>";
repl('ваш',$text);
echo $text."<hr>";
repl('ваш',$text);
echo $text."<hr>";
repl('это',$text);
echo $text."<hr>";
repl('вашего',$text);
echo $text."<hr>";

точно не заменяет? с кодировкой все в порядке?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.1125 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.