Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Регулярное выражение (http://forum.oszone.net/showthread.php?t=181399)

venuko 25-07-2010 11:58 1460242

Регулярное выражение
 
Подскажите регулярку, задача следующая, есть текст выводимы в контенте к примеру: Источник: mail.ru

Нужно чтобы на выходе был такой html код:

Источник: <a href="mail.ru">mail.ru</a>


Т.е. после слова "Источник: " брать текст ссылки и оборачивать её ссылкой.

Delirium 26-07-2010 01:29 1460548

Где оборачивать? Язык какой? Откуда текст берется? Слишком мало данных для мозгового штурма :)

venuko 26-07-2010 13:35 1460804

Цитата:

Цитата Delirium
Где оборачивать? Язык какой? Откуда текст берется? Слишком мало данных для мозгового штурма »

язык php

на входе текст в переменной: Источник: mail.ru

на выходе должен получится html: Источник: <a href="mail.ru">mail.ru</a>

venuko 27-07-2010 18:02 1461634

up.

Delirium 28-07-2010 03:02 1461905

venuko, все равно не пойму, в чем проблема, а что нельзя в переменную записать нечто такое:
string data_from_input = "mail.ru"
string reg_exp = "<a href='" + data_from_input + " '>" + data_from_input + "</a>"

и в код вставить результат reg_exp. Или я неверно понимаю суть задачи?

venuko 28-07-2010 08:52 1461986

Цитата:

Цитата Delirium
venuko, все равно не пойму, в чем проблема, а что нельзя в переменную записать нечто такое:
string data_from_input = "mail.ru"
string reg_exp = "<a href='" + data_from_input + " '>" + data_from_input + "</a>"
и в код вставить результат reg_exp. Или я неверно понимаю суть задачи? »

Да нет не поняли меня. В контенте могут быть источники с разными сайтами, так вот сайт в источники нужно делать ссылкой.

К примеру в контенте в конце может быть разный источник или "Источник: mail.ru" или "Источник: news.ru" и т.д.

PHP код:

$content1 "Источник: mail.ru";
$content2 "Источник: news.ru"

Т.е. после пробела двоеточия брать текст сайта и оборачивать его ссылкой самого на себя.

Sham 28-07-2010 12:27 1462102

PHP код:

preg_replace
(
    
'{Источник\:\s*([\S]+)}i',
    
'Источник: <a rel="nofollow" href="/go.php?url=http://${1}">${1}</a>',
    
$text
); 


venuko 28-07-2010 17:26 1462322

Цитата:

Цитата Sham
preg_replace
'{Источник\:\s*([\S]+)}i',
'Источник: <a href="http://${1}">${1}</a>' »

что-то не пойму как применить данный код если данные приходят так в переменной

PHP код:

$content1 "Источник: mail.ru"


Sham 29-07-2010 09:32 1462652

Это был не код, а наводка. Ваша библия - php.net.

venuko 02-08-2010 12:06 1465067

Цитата:

Цитата Sham
Это был не код, а наводка. Ваша библия - php.net. »


Спасибо за подсказку. Разобрался, все работает :)

Не подскажете хороший ресурс понятный для тех кто дуб в регулярках?

venuko 02-08-2010 12:30 1465083

Цитата:

Цитата Sham
Это был не код, а наводка. Ваша библия - php.net. »

сделал так, но как то не верно работает:

PHP код:

$text "<p>Текст текст текст</p> <p>Источник: mail.ru</p>";

$res preg_replace('{Источник\:\s*([\S]+)}i','Источник: <a rel="nofollow" href="/go.php?url=http://${1}">${1}</a>',$text);

echo 
$res


Sham 02-08-2010 18:18 1465389

\S - непробельные символы (туда и тег войдет). вместо него можно [a-z\.] (набор возможных символов)

Цитата:

Цитата venuko
хороший ресурс понятный для тех кто дуб »

http://docs.php.net/manual/ru/regexp.reference.php


Время: 16:55.

Время: 16:55.
© OSzone.net 2001-