К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Есть ли готовые обработки форумных текстов в части обработки www, http и [URL]?

Гость
0 - 26.07.2012 - 12:59
Подозреваю, что у кого-то должны быть готовые примеры, обрабатывающие тексты, с последующим превращением текстовых адресов (как на форумах) в урлы.
Какая-никакая обработка простого текста есть:
"[[:alnum:]-]+://[^\[<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\">\\0</a>"
(сам писал) =)

Но этого, как понимаете, мало.
Надо бы еще и обработку вот такого:
[url = httр://somesite.com/page.html]somesite.com[/url]
или же превращение
httр://somesite.com/page.html в [somesite.com] (ссылкой)
Также интересно бы глянуть на код, где длинные урлы сокращаюццо, типа как на этом форуме.

Может есть у кого готовые варианты таких превращений, чтобы заново лисапет не придумывать?



Гость
1 - 26.07.2012 - 14:07
Это штоле? http://framework.zend.com/wiki/displ...+-+Pieter+Kokx
Гость
2 - 26.07.2012 - 14:44
Первое -
http://forum.php.su/topic.php?forum=1&topic=2094

Второе -
http://dayte2.com/bbcode-url
Гость
3 - 26.07.2012 - 14:45
непохоже на то
Гость
4 - 26.07.2012 - 14:50
2-Kuba >
кажись второе самое то
Гость
5 - 26.07.2012 - 15:33
function parse_bb_code($text) **
$text = preg_replace('/\[(\/?)(b|i|u|s)\s*\]/', "<$1$2>", $text);

$text = preg_replace('/\[code\]/', '<pre><code>', $text);
$text = preg_replace('/\[\/code\]/', '</code></pre>', $text);

$text = preg_replace('/\[(\/?)quote\]/', "<$1blockquote>", $text);
$text = preg_replace('/\[(\/?)quote(\s*=\s*([\'"]?)([^\'"]+)\3\s*)?\]/', "<$1blockquote>Цитата $4:<br>", $text);

$text = preg_replace('/\[url\](?:http:\/\/)?([a-z0-9-.]+\.\w{2,4**)\[\/url\]/', "<a href=\"http://$1\">$1</a>", $text);
$text = preg_replace('/\[url\s?=\s?([\'"]?)(?:http:\/\/)?([a-z0-9-.]+\.\w{2,4**)\1\](.*?)\[\/url\]/', "<a href=\"http://$2\">$3</a>", $text);


$text = preg_replace('/\[img\s*\]([^\]\[]+)\[\/img\]/', "<img src='$1'/>", $text);
$text = preg_replace('/\[img\s*=\s*([\'"]?)([^\'"\]]+)\1\]/', "<img src='$2'/>", $text);

return $text;
**

не обрабатывает адреса, типа
[ url=http://forums.kuban.ru/?parametr]форум[ /url]
и
[ url]http://forums.kuban.ru/?parametr[ /url]
(без пробела в кв. скобках, конечно)
Гость
6 - 26.07.2012 - 16:35
Извлечение текста между парными тегами


$text = '<$>sample_text</$>';
$data = array();

preg_match('|<$>(.*)</$>|Uis', $text, $out);

# $out[1] будет сожержать строку 'sample_text'
Гость
7 - 26.07.2012 - 19:24
ну это уж точно не то =)
Гость
8 - 26.07.2012 - 23:11
Совсем учиться не хочешь.

Это должно было натолкнуть на мысль, как сделать то.. А вообще проще всего ковырнуть любой движок бесплатного форума и достать то что нужно.

Кстати, вот такое
Цитата:
[url = httр://somesite.com/page.html]somesite.com[/url]
называется BB-коды

http://yandex.ru/yandsearch?text=%D0...id=48648&lr=35

function AddBB($var) **
$search = array(
'/\[url\](.*?)\[\/url\]/is',
'/\[url\=(.*?)\](.*?)\[\/url\]/is'
);

$replace = array(
'<a href="$1">$1</a>',
'<a href="$1">$2</a>'
);

$var = preg_replace ($search, $replace, $var);
return $var;
**
Гость
9 - 27.07.2012 - 12:52
Да, робит, спасибо, но хотелось бы, чтоб оно еще и сокращало длинное, типо делало из гиперссылки токо [www.domen.com] и все. =)
10 - 27.07.2012 - 21:14
для преобразования bb кодов можно использовать библиотеку http://xbb.uz/docs/ . Разработчики утверждают что эта библиотека работает быстрее чем скрипты реализованные на регулярных выражениях.
Гость
11 - 28.07.2012 - 13:48
Спасибо. Скачал, посмотрю на досуге. =)
Правда там масса кода, надо будет запасацца литром коньяку.
Гость
12 - 23.08.2012 - 14:52
Всеж оно как-то неполно работает с урлами, которые без этих [ url ] тегов публикуются.
Например, если написать www.com и типа того, то оно превратится в урл, а если субдомен или длинный адрес, то нет.
Какая-то хрень получается, а не обработка урлов, однако.


К списку вопросов






Copyright ©, Все права защищены