|
|
|
| Подскажите пожалуйста, как преоброзовать с помощью регулярных выражений вот это:
[img=left]http://site.ru/e107_images/newsp ost_images/image-team-011.jpg[/img]
или
[img=center]http://site.ru/e107_images/newsp ost_images/image-team-011.jpg[/img]
или
[img=right]http://site.ru/e107_images/newsp ost_images/image-team-011.jpg[/img]
|
в
<img src=http://site.ru/e107_images/newsp ost_images/image-team-011.jpg align=left>
соответственно
<img src=http://site.ru/e107_images/newsp ost_images/image-team-011.jpg align=center>
соответственно
<img src=http://site.ru/e107_images/newsp ost_images/image-team-011.jpg align=right>
|
За ранее огромное спасибо ))))) | |
|
|
|
|
|
|
|
для: Hades
(07.08.2007 в 17:51)
| | Чтоб не возникало больше вопросов, держи функцию
<?
function zamena($post){
$post = preg_replace("#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i","<a href=\"$1\">$2</a>",$post);
$post = preg_replace("#\[url[\s]*=[\s]*([\S]+)[\s](.*)\](.*?)\[/url\]#isU",'<a href="\\1" \\2>\\3</a>',$post);
$post = preg_replace( "#\[zag\](.+?)\[/zag\]#is", "<span class=\"grayDk\">\\1</span>", $post );
$post = preg_replace( "#\[email\](\S+?)\[/email\]#i", "<a href='mailto:\\1' class=\"style1\">\\1</a>", $post );
$post = preg_replace( "#\[email\s*=\s*\"\;([\.\w\-]+\@[\.\w\-]+\.[\.\w\-]+)\s*\"\;\s*\](.*?)\[\/email\]#i", "<a href='mailto:\\1' class=style1>\\2</a>", $post );
$post = preg_replace( "#\[email\s*=\s*([\.\w\-]+\@[\.\w\-]+\.[\w\-]+)\s*\](.*?)\[\/email\]#i", "<a href='mailto:\\1' class=style1>\\2</a>", $post );
$post = preg_replace("#\[quote\]\s*(.*?)\s*\[/quote\]#is","<i style=\"color:#6633cc\">$1</i>",$post);
$post = preg_replace('#\[img(.*?)\](.+?)\[/img\]#','<img src="$2" style="border: 2px solid" $1>',$post);
$post = preg_replace( "#\[b(.*?)\](.+?)\[/b\]#is", "<b $1>\\2</b>", $post );
$post = preg_replace( "#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $post );
$post = preg_replace( "#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $post );
$post = preg_replace( "#\[li\](.+?)\[/li\]#is", "<li>\\1</li>", $post );
$post = preg_replace( "#\[box(.*?)\](.+?)\[/box\]#is", "<table width=\"100%\" class=\"style1\" cellpadding=\"0\" cellspacing=\"0\" \\1><tr><td>\\2</td></tr></table>", $post );
$post = preg_replace("#\[table(.*?)\](.*?)\[\/table\]#is","<table$1 border=\"0\" cellpadding=\"4\" cellspacing=\"1\" bgcolor=\"#ffffff\" class=\"style1\"><tbody>$2</tbody></table>",$post);
$post = preg_replace( "#\[tr(.*?)\](.+?)\[/tr\]#is", "<tr$1>$2</tr>", $post );
$post = preg_replace( "#\[td(.*?)\](.+?)\[/td\]#is", "<td bgcolor=#8a8a8a $1>$2</td>", $post );
$post = preg_replace( "#\[div(.*?)\](.+?)\[/div\]#is", "<div $1>$2</div>", $post );
$post = preg_replace("#\[a\s*=\s*(\S+?)\s*\](.*?)\[\/a\]#i","<a name=$1>$2</a>",$post);
$post = preg_replace("(\ )"," ",$post);
return $post;
}
?>
|
| |
|
|
|
|
|
|
|
для: himic
(07.08.2007 в 18:24)
| | хмммм... почему-то не срабатывает (((( вот подставляю вот это выражение :
$post = preg_replace('#\[img(.*?)\](.+?)\[/img\]#','<img src="$2" style="border: 2px solid" $1>',$post);
|
и ни какой замены не происходит (( | |
|
|
|
|
|
|
|
для: Hades
(07.08.2007 в 18:53)
| | - | |
|
|
|
|
|
|
|
для: sim5
(07.08.2007 в 18:57)
| | хм......!? | |
|
|
|
|
|
|
|
для: Hades
(07.08.2007 в 19:59)
| | напиши куда ты подставляешь | |
|
|
|
|
|
|
|
для: himic
(07.08.2007 в 20:27)
| |
function post($postbody)
{
$postbody = preg_replace('/\[email=([^\]]+)\](.*?)\[\/email\]/ism','<a class="guesthrefemail" href="mailto:\1">\2</a>',$postbody);
$postbody = preg_replace('#\[img(.*?)\](.+?)\[/img\]#','<img src="\\2" style="border: 2px solid" \\1>',$postbody);
$patern="#\[[\s]*url[\s]*=[\s]*([^\]]*)\]([^\[]*)\[[\s]*/url[\s]*\]#i";
$replacment = '<a class="guesthrefurl" href=\\1>\\2</a>';
$postbody = preg_replace($patern, $replacment, $postbody);
// Тэги
$postbody = preg_replace("#\[b\](.+)\[\/b\]#isU",'<b>\\1</b>',$postbody);
$postbody = preg_replace("#\[i\](.+)\[\/i\]#isU",'<i>\\1</i>',$postbody);
$postbody = preg_replace("#\[url\][\s]*([\S]*)[\s]*\[\/url\]#si",'<a href="\\1" target=_blank>\\1</a>',$postbody);
$postbody = preg_replace("#\[url[\s]*=[\s]*([\S]+)[\s]*\][\s]*([^\[]*)\[/url\]#isU",
'<a href="\\1" target=_blank>\\2</a>',
$postbody);
$postbody = str_replace("`","'",$postbody);
return $postbody;
}
|
| |
|
|
|
|
|
|
|
для: Hades
(07.08.2007 в 20:58)
| | Попробуй внаглую
<?
echo preg_replace('#\[img(.*?)\](.+?)\[/img\]#','<img src="\\2" style="border: 2px solid" \\1>',"[img=center]http://site.ru/e107_images/newsp ost_images/image-team-011.jpg[/img]" );
?>
|
Отредактированно:
Нашёл ошибку, у меня эта функция заменят вот это дело
[img align=center]http://site.ru/e107_images/newsp ost_images/image-team-011.jpg[/img]
А ты заменяешь это
[img=center]http://site.ru/e107_images/newsp ost_images/image-team-011.jpg[/img]
Делай как у меня, потом мне например понадобилось прописывать и другие параметры
[img border=0]http://site.ru/e107_images/newsp ost_images/image-team-011.jpg[/img]
[img class=white]http://site.ru/e107_images/newsp ost_images/image-team-011.jpg[/img] | |
|
|
|
|
|
|
|
для: himic
(07.08.2007 в 21:08)
| | вот в форме я отправляю обработчику такой запрос :
[img align=left]http://softtime.ru/skins/extend/mages/pen.gif[/img]
|
jобрабатываю функцией :
function post($postbody)
{
$postbody = preg_replace('/\[email=([^\]]+)\](.*?)\[\/email\]/ism','<a class="guesthrefemail" href="mailto:\1">\2</a>',$postbody);
$postbody = preg_replace('#\[img(.*?)\](.+?)\[/img\]#','<img src="\\2" style="border: 2px solid" \\1>',$postbody);
$patern="#\[[\s]*url[\s]*=[\s]*([^\]]*)\]([^\[]*)\[[\s]*/url[\s]*\]#i";
$replacment = '<a class="guesthrefurl" href=\\1>\\2</a>';
$postbody = preg_replace($patern, $replacment, $postbody);
// Тэги
$postbody = preg_replace("#\[b\](.+)\[\/b\]#isU",'<b>\\1</b>',$postbody);
$postbody = preg_replace("#\[i\](.+)\[\/i\]#isU",'<i>\\1</i>',$postbody);
$postbody = preg_replace("#\[url\][\s]*([\S]*)[\s]*\[\/url\]#si",'<a href="\\1" target=_blank>\\1</a>',$postbody);
$postbody = preg_replace("#\[url[\s]*=[\s]*([\S]+)[\s]*\][\s]*([^\[]*)\[/url\]#isU",
'<a href="\\1" target=_blank>\\2</a>',
$postbody);
$postbody = str_replace("`","'",$postbody);
return $postbody;
}
|
вообще ничего не заменяет он у меня (((((((( просто не хочет и все ((
и еще вопросик к регулярным: вот в форме запрос [video=http://localhost/video/mr.avi] как сделать так чтобы плеер его воспроизводил???? | |
|
|
|
|
|
|
|
для: Hades
(07.08.2007 в 22:46)
| | насчёт воспроизведения это другой вопрос, лучше создай новую тему
Вот так сделай, всё должно пахать, всё больше ничем не могу помочь
function split_text($matches)
{
return wordwrap($matches[1], 60, ' ',1);
}
function post($postbody) {
$post=$postbody;
// $post=wordwrap($post,50,' ',1);
$post = preg_replace_callback("|([a-zа-я\d!]{60,})|i","split_text",$post);
$text = "
";
$lastocc = 0;
$sndocc = 1;
$result = "";
while($sndocc)
{
$fstocc = strpos($post,"[code]",$lastocc);
$sndocc = strpos($post,"
| ",$fstocc);
if(($fstocc>0 && $sndocc>0 && $lastocc>0) || ($fstocc >= 0 && $sndocc>0 && $lastocc == 0))
{
$result .= nl2br(htmlspecialchars(substr($post,$lastocc,$fstocc - $lastocc)));
$result .= "<table border=0 ><tr><td class=codeblock>".highlight_string(substr($post,$fstocc + 6,$sndocc - $fstocc - 6),true)."</td></tr></table>";
$lastocc = $sndocc + 7;
}
else
{
$result .= nl2br(htmlspecialchars(substr($post,$lastocc,strlen($post)-$lastocc)));
break;
}
}
$post = $result;
$post = preg_replace("#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#i","<a href=\"$1\">$2</a>",$post);
$post = preg_replace("#\[url[\s]*=[\s]*([\S]+)[\s](.*)\](.*?)\[/url\]#isU",'<a href="\\1" \\2>\\3</a>',$post);
$post = preg_replace( "#\[zag\](.+?)\[/zag\]#is", "<span class=\"grayDk\">\\1</span>", $post );
$post = preg_replace( "#\[email\](\S+?)\[/email\]#i", "<a href='mailto:\\1' class=\"style1\">\\1</a>", $post );
$post = preg_replace( "#\[email\s*=\s*\"\;([\.\w\-]+\@[\.\w\-]+\.[\.\w\-]+)\s*\"\;\s*\](.*?)\[\/email\]#i", "<a href='mailto:\\1' class=style1>\\2</a>", $post );
$post = preg_replace( "#\[email\s*=\s*([\.\w\-]+\@[\.\w\-]+\.[\w\-]+)\s*\](.*?)\[\/email\]#i", "<a href='mailto:\\1' class=style1>\\2</a>", $post );
$post = preg_replace("#\[quote\]\s*(.*?)\s*\[/quote\]#is"," <table width=80% border=0 cellpadding=0 cellspacing=1 bgcolor=#cdcdcd style=\"padding: 5px;\"><tr><td style=\"font-size:10px;\">$1</td></tr></table>",$post);
$post = preg_replace('#\[img(.*?)\](.+?)\[/img\]#','<img src="$2" $1>',$post);
$post = preg_replace( "#\[b(.*?)\](.+?)\[/b\]#is", "<b $1>\\2</b>", $post );
$post = preg_replace( "#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $post );
$post = preg_replace( "#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $post );
$post = preg_replace( "#\[li\](.+?)\[/li\]#is", "<li>\\1</li>", $post );
$post = preg_replace( "#\[box(.*?)\](.+?)\[/box\]#is", "<table width=\"100%\" class=\"style1\" cellpadding=\"0\" cellspacing=\"0\" \\1><tr><td>\\2</td></tr></table>", $post );
$post = preg_replace("#\[table(.*?)\](.*?)\[\/table\]#is","<table$1 border=\"0\" cellpadding=\"4\" cellspacing=\"1\" bgcolor=\"#6e6e6e\" class=\"style1\"><tbody>$2</tbody></table>",$post);
$post = preg_replace( "#\[tr(.*?)\](.+?)\[/tr\]#is", "<tr$1>$2</tr>", $post );
$post = preg_replace( "#\[td(.*?)\](.+?)\[/td\]#is", "<td bgcolor=#c5c5c5 $1>$2</td>", $post );
$post = preg_replace( "#\[div(.*?)\](.+?)\[/div\]#is", "<div $1>$2</div>", $post );
$post = preg_replace("#\[a\s*=\s*(\S+?)\s*\](.*?)\[\/a\]#i","<a name=$1>$2</a>",$post);
return $post;
} | |
|
|
|
|
|
|
|
для: himic
(08.08.2007 в 15:37)
| | все работает ))))) пасибо огромное ........ | |
|
|
|
|