| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
MGoldi Mitglied

|
sicherer BB-Code für [php] |
|
|
Hey,
ich möchte gerne für meine Internetseite einen BB-Code machen, so wie hier im Forum...
Ich habe auch schon Code geschrieben:
| PHP-Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| <?php
function bbcode($s) {
$s = preg_replace('/\[b\](.*)\[\/b\]/Usi', '<b>$1</b>', $s);
$s = preg_replace('/\[i\](.*)\[\/i\]/Usi', '<i>$1</i>', $s);
$s = preg_replace('/\[u\](.*)\[\/u\]/Usi', '<u>$1</u>', $s);
$s = preg_replace('/\[color=(.*)\](.*)\[\/color\]/Usi', '<span style="color:$1">$2</span>', $s);
$s = preg_replace('/\[mail\](.*)\[\/mail\]Usi', '<a href="mailto:$1">$1</a>', $s);
$s = preg_replace('/\[mail=(.*)\](.*)\[\/mail\]Usi', '<a href="mailto:$1">$2</a>', $s);
$s = preg_replace_callback('/\[url\](.*)\[\/url\]/Usi', 'linkLength', $s);
$s = preg_replace_callback('/\[url=(.*)\](.*)\[\/url\]/Usi', 'linkLength', $s);
$s = preg_replace_callback('#(( |^)(((ftp|http|https|)://)|www.)\S+)#mi', 'linkLength', $s);
$s = preg_replace_callback('/\[var\](.*)\[\/var\]/Usi', 'parseVar', $s);
return $s;
}
function linkLength($treffer) {
$url = trim($treffer[1]);
if (substr($url,0,7) != 'http://')
$url = "http://".$url
if (strlen(trim($treffer[2])) != 0)
$linkname = $treffer[2];
else
$linkname = $treffer[1];
if (strlen($linkname) > 50 && !substr_count(strtolower($linkname), '{img]') && !substr_count(strtolower($linkname), '[/img]'))
$linkname = substr($linkname,0,37).'…'.substr($linkname,-10);
$ergebnis = '<a href="'.$url.'" target="_blank" rel="nofollow">'.$linkname.'</a>';
return $ergebnis;
}
function parseVar($treffer) {
$str = str_replace('[', '<span style="color:#007700">[</span>', $treffer[1]);
$str = str_replace(']', '<span style="color:#007700">]</span>', $str);
$str = preg_replace('/('.*')/Usi', '<span style="color:#DD0000">$1</span>', $str);
$str = preg_replace('/(".*")/Usi', '<span style="color:#DD0000">$1</span>', $str);
return '<span style="color:#0000BB">'.$str.'</span>';
}
?> |
Wie kann ich dies nun für [ php] (ohne Leerzeichen ) machen??
Das ganze sollte dann natürlich auch sicher sein... |
_________________ LG MGoldi |
|
|
| 12 Feb 2011 15:44 |
|
  |
Werner Homepage-Total.de Moderator

|
 |
|
|
Den folgenden Code benutze ich auf meiner Website:
<?php
$s = strstr($s, "[php]") ? bbcode_php($s) : $s;
function bbcode_php($str) {
$php = array();
preg_match_all("/\[php\](.*)\[\/php\]/siU", $str, $php);
foreach($php[0] as $key => $value) {
$str = preg_replace('#' . preg_quote($value, '#') . '#', '[php]' . $key.'[/php]', $str, 1);
$php[1][$key] = highlight_string($php[1][$key], true);
}
foreach($php[1] as $key => $value) {
$str = preg_replace("/\[php\]" . $key . "\[\/php\]/siU", $value, $str);
}
return preg_replace("/<br \/>/siU", "", $str, 1);
}
?> |
_________________ Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten!
Wie man Fragen richtig stellt |
|
|
| 12 Feb 2011 21:13 |
|
 |
MGoldi Mitglied

|
 |
|
|
| Danke... Funtioniert super.. |
_________________ LG MGoldi |
|
|
| 13 Feb 2011 22:00 |
|
 |
|