Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
[Funktion] bbcode script [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
[Funktion] bbcode script


 
xJonx
19-03-2006, 23:44 
 
ich hab hier einen netten kleinen Script. Den hab ich irgendwann mal irgendwo raus gezogen.
allerdings muss ich jezt feststellen das der nicht funzt.

also: es ist ne kleine BB Code funktion und läuft nicht - kann mir jmd weiter helfen?

<?php

function textFormat($input) {

$input = htmlspecialchars($input);
$input = nl2br($input);

$bbcode = array(
"/\[b\](.*?)\[\/b\]/si",
"/\[i\](.*?)\[\/i\]/si",
"/\[u\](.*?)\[\/u\]/si",
"/\[url\](.*?)\[\/url\]/si" ,
"/\[url=(.*?)\](.*?)\[\/url\]/si" ,
"/\[img\](.*?)\[\/img\]/si",
"/\[mail\](.*?)\[\/mail\]/si" ,
"/\[mail=(.*?)\](.*?)\[\/mail\]/si" ,
"/\[code\](.*?)\[\/code\]/si",
"/\[zitat\](.*?)\[\/zitat\]/si",
"/\[center\](.*?)\[\/center\]/si",
);

$replace = array(
"<b>\\1</b>",
"<i>\\1</i>",
"<u>\\1</u>",
"<a target=_blank href=\"\\1\">\\1</a>",
"<a target=_blank href=\"\\1\">\\2</a>",
"<img src=\"\\1\" alt=\"\\1\" />",
"<a href=\"mailto:\\1\">\\1</a>",
"<a href=\"mailto:\\1\">\\2</a>",
"<b>code:</b><table class='code'><tr><td>\\1</td></tr></table>",
"<b>zitat:</b><table class='zitat'><tr><td>\\1</td></tr></table>",
"<div align='center'>\\1</div>",
);

$bbcode_count = count($bbcode);

for ($i=0;$i<$bbcode_count;$i++) {
$input = preg_replace($bbcode[$i], ''.$replace [$i].'', $input);
}

return $input;
}

textFormat($input) ;

?>

nebenbei... weiß jmd etwas ähnlich einfach gestricktes für php?
also ich meine wie die bbcode php funktion hier...[PHP]

 
Bauergiesen
19-03-2006, 23:57 
 
Eine kurze Form von mir:

<?
function bbreplace($string)
{

$string =addslashes(nl2br(strip_tags(trim($string))));
$string = strip_tags($string);

$string = str_replace("[ b ]","<b>",$string);
$string = str_replace("[ u ]","<u>",$string);
$string = str_replace("[ /b ]","</b>",$string);
$string = str_replace("[ /u ]","</u>",$string);
$string = str_replace("[ i ]","<i>",$string);
$string = str_replace("[ /i ]","</i>",$string);

// Smilyeinsatz
$string = str_replace(":-)","<img src=images/smilies/001.gif>",$string);
return $string;
}
?>

Die Leerzeichen bei dem Suchkriteriem müssen noch gelöscht werden. Sind nur da mit der BBCode des Forums nicht anspringt.
Viel Spaß damit

MfG
Bauer

 
xJonx
20-03-2006, 07:20 
 
wo bei deine version das fast wichtigste nicht hat: die link formatierung...

 
Bauergiesen
20-03-2006, 15:47 
 
Linkformatierung sieht wie folgt aus:

$string = preg_replace("/\[url](.*)\[\/url\]/siU","<a href=\"\\1\" target=\"_blank\">\\1</a>",$string);
$string = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#si","<a href=\"\\1\" target=\"_blank\">\\2</a>",$string);


MfG
Bauer

 
xJonx
20-03-2006, 15:51 
 
jetzt noch eins: kannst du mir genau aufschlüssel, was genau du tust?
weil ich es lieber wirklich genau verstehen möchte - ich würde es gerne
noch ausarbeiten und um eine php umwandlung erweitern :D

macht der eigentlich auch <br> ? kannst du mir sagen wie ich den anbaue?

 
Bauergiesen
20-03-2006, 15:57 
 
lies dir mal folgenden Artikel durch
http://de.php.net/preg_replace

Aufgerufen wird die Funktion mit:
[ URL ]http://test.de[ /URL ]
oder
[ URL=http://test.de ]Name[ /URL ]


MfG
Bauer

 
xJonx
20-03-2006, 16:07 
 
ok... ich frag einfach mal genauer nach:

wie setzt sich das zusammen, das steht das nämlich nicht:

<?
// Was bedeuetet das? --------####------####--------------#----------------------#--------------
$string = preg_replace("/(.*)/siU","<a href=\"\1\" target=\"_blank\">\1</a>",$string);

// Was bedeuetet das? --------#####-#####------###--------------#----------------------#--------------
$string = preg_replace("#(.*?)#si","<a href=\"\1\" target=\"_blank\">\2</a>",$string);
?>

 
xJonx
20-03-2006, 16:08 
 
kucks dir in deinem editor an, hier wirds scheiße dargestellt!

 
Bauergiesen
20-03-2006, 16:23 
 
Tschuldigung. Das übliche Problem.
Ich hänge dir den Quelltext mal an.

MfG
Bauer

 
xJonx
20-03-2006, 16:28 
 
ich meine jetzt, was die zahlen und .* und .*? bedeutet...

 
cipolla
20-03-2006, 18:43 
 
Also eins muss man Bauergiesen ja lassen, klasse ausdauer.

das zauberwort heisst wohl: regular expression

Schau dir doch mal den link hier an:

regular expression mit php (http://www.infos24.de/phpe/handbuch/6_php_regular_expression.htm)

da sollte dir geholfen werden.;)

 
jahlives
20-03-2006, 18:58 
 
Oder einfach :rtfm: Stichwort Modifikatoren + Synthax

Gruss

tobi

 
xJonx
20-03-2006, 19:38 
 
wo was wie? immerher damit!!!

 
jahlives
20-03-2006, 19:41 
 
Also damit du vor lauter Suchen nicht das Augenlicht verlierst ;) hier nochmals direkt verlinkt
Modifikatoren (http://us3.php.net/manual/de/reference.pcre.pattern.modifiers.php) und Synthax (http://us3.php.net/manual/de/reference.pcre.pattern.syntax.php)

Gruss

tobi

p.s. der rtfm Smilie war auch damit verlinkt

 
xJonx
23-03-2006, 07:59 
 
Sorry, jetzt habe ich deinen Beitrag versehentlich überschrieben ...

Originalbeitrag war etwas in der Art:

Meldung "unknown Modifier 'r' in ..." bei

preg_replace('/[ url](.*)[/url]/...'

 
wahsaga
23-03-2006, 09:24 
 
Dein Delimiter taucht unmaskiert mitten im Suchausdruck auf, und deshalb endet dieser dort. Das nachfolgende 'u' ist noch ein bekannter Modifier - aber 'r' gibt's nicht ...

 
xJonx
23-03-2006, 09:53 
 
sorry wahsaga.

ich weiß das ich hier das ein oder andere fettnäpfchen erwischt habe.
aber was bitte soll das, das du einfach meinen post änderst, ohne eine
angabe wieso?

ich will wirklich kein stress hier und ich denke das du wahrscheinlich
auch recht angesehen hier bist - aber damit stellst du dich in meinen
augen auf eine stufe mit einem anderen, bestimmten, moderator hier.

leider kann mir jetzt auch keiner mehr helfen, da du ja denn text gelöscht
hast und dieser damit für andere hilfbereite leute nicht mehr einsehbar
ist!

 
wahsaga
23-03-2006, 10:21 
 
Original geschrieben von xJonx
aber was bitte soll das, das du einfach meinen post änderst, ohne eine
angabe wieso?
OMG ... ich schrieb doch, dass es ein Versehen war - muss ich für ein solches jetzt auch noch einen "Grund" angeben ...?

Na schön:
Da in deinem Suchmuster die url-Tags auftauchten, wie sie die Forumsoftware hier auch verwendet, wurde das in folgendes Umgewandelt:
preg_replace('/(.*)/...', ...);
Entsprach das dem, was du eigentlich darstellen wolltest? Wohl eher nicht. [1]

Da ich mir aber schon dachte, dass die Forumssoftware hier wieder mal übereifrig war, wollte ich mir deine Eingabe im Original ansehen - also habe ich auf "ändern" geklickt, um möglichst unverändert das zu sehen zu bekommen, was du ursprünglich eingegeben hattest.

Da mir dadurch die Ursache des Problems sofort klar war, fing ich an, eine Antwort zu verfassen - und habe dabei leider vergessen, dass ich gerade im "ändern"- und nicht im "zitieren"-Modus war.


So, reicht das jetzt als Erklärung, warum du hier so unfair behandelt wirst ...?
*seufz*

leider kann mir jetzt auch keiner mehr helfen, da du ja denn text gelöscht hast und dieser damit für andere hilfbereite leute nicht mehr einsehbar ist!
Du hast doch bereits ein hilfreiche Antwort von mir bekommen!
Man, erst mal wieder meckern, und dabei auf das wirklich hilfreiche gar nicht eingehen ...


[1] Btw: Wenn du dir deine eigenen Postings nach dem Absenden noch mal anschauen würdest, hätte das dir übrigens auch selbst auffallen können. Aber das ist bei den meisten hier ja auch zu viel verlangt - schnell Frage posten, möglichst wenig Aufwand ...

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:18 Uhr.