|
|
|
| Как известно при использовании ф-ии htmlspecialchars нельзя испльзовать HTML код в строке. И все наверное знаю про его замену строками типа [b][/b] и т.д. Мне надо использовать такие коды [tag=param]text[/tag] или [tag]text[/tag], ну дак вот. Как в одну переменную занести tag, во вторую param, а в третью text. Естественно текст везде может быть разным. | |
|
|
|
|
|
|
|
для: sergey89
(06.09.2005 в 14:53)
| | Не очень понятно в чём трудность? Вы хотите динамически эти тэги формировать или из HTML-формы? | |
|
|
|
|
|
|
|
для: cheops
(06.09.2005 в 15:06)
| | Из HTML формы получать, а затем обрабатывать. Как я понял это делается при помощи регулярных выражний, но в них я увы не силён :( | |
|
|
|
|
|
|
|
для: sergey89
(06.09.2005 в 16:42)
| | Регулярные выражения нужно уже при интерпретации, я так понял сейчас проблема в формировании текста с этим тэгом или уже имеется текст, в котором размещены эти теги и нужно заменить их на реальные тэги HTML? | |
|
|
|
|
|
|
|
для: sergey89
(06.09.2005 в 14:53)
| | То, что вы спрашиваете, называется bb-code, или псевдотеги. Поищите по форуму, не раз обсуждалось в разных вариантах=) | |
|
|
|
|
|
|
|
для: Киналь
(06.09.2005 в 18:13)
| | Киналь, именно это я и имел в виду ;) | |
|
|
|
|
|
|
|
|
для: cheops
(06.09.2005 в 18:46)
| | С этим спасибо. Возник ещё вопрос. допустим есть bbcode: Описание, надо перевести в <a href="http://www.sait.ru" target="_blank">Описание</a>, но может быть такой код: http://www.sait.ru или [url=]http://www.sait.ru[/url], в этом случае должно получиться <a href="http://www.sait.ru" target="_blank">http://www.sait.ru</a> | |
|
|
|
|
|
|
|
для: Sergey89
(06.09.2005 в 19:08)
| | Вот что нашёл:
<?
// matches a [url]xxxx://www.phpbb.com[/url] code..
$patterns[] = "#\[url\]([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url1'];
// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url2'];
// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url3'];
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url4'];
?>
|
Но ничерта не разобраться :) | |
|
|
|
|
|
|
|
для: Sergey89
(06.09.2005 в 19:50)
| | Вобщем я почти разобрался. Вот, что я написал:
<?php
$text = "some text2 http://www.mlib.com.ru some text2<br>
some text3 [url]www.promoforum.ru[/url] some text3<br>
some text4 Форум умных людей some text4<br>
some text5 [url=www.wmhstudio.ru]IT-студия WMH[/url] some text5<br>";
print $text;
$text = preg_replace("/\[url=(http:\/\/.*)\](.*)\[\/url\]/i", "<a href=\"\\1\">\\2</a>", $text); //text 4
$text = preg_replace("/\[url=(www\..*)\](.*)\[\/url\]/i", "<a href=\"http:\/\\1\">\\2</a>", $text); //text 5
$text = preg_replace("/\[url\](http:\/\/.*)\[\/url\]/i", "<a href=\"\\1\">\\1</a>", $text); //text 2
$text = preg_replace("/\[url\](www\..*)\[\/url\]/i", "<a href=\"http:\/\\1\">\\1</a>", $text); //text 3
// $text = preg_replace("/(http:\/\/(.*))/i", "<a href=\"\\1\">\\1 5</a>", $text); //ПРОБЛЕММА!
print $text;
?>
|
Единственна проблемма в строке проблемма! :) надо каким-то образом определить оставшиеся ссылки, без псевдотегов, но с префиксрм http://. Моё выражение конечно не работает, т.к. начинается поиск ысех нормальных url :( | |
|
|
|
|
|
|
|
для: Sergey89
(07.09.2005 в 21:45)
| | Вроде сделал:
<?
$text = preg_replace("/([^\"\'<>]http:\/\/([a-zA-Z_0-9\.\?\&\#\;\:\+\-\=\%\/]*))/i", " <a href=\"http://\\2\">\\2</a> ", $text);
?>
|
| |
|
|
|