000
23.11.2009, 19:18
kingduevel
|
Ich möchte einige Beiträge aus meinen WBB3 separat auf meiner Webseite anzeigen. Die Datenbankanfragen stimmen soweit, aber ich muss ja noch diese Forenformatierung in richtiges HTML übersetzen.
Hier mag das ja noch einfach sein:
$search = array('[img]','[/img]'); $replace = array('<img src="','" alt="">'); $message2 = str_replace($search, $replace, $message1); Aber komplizierter wird es, wenn ein Bild gleichzeitig auch ein Hyperlink ist. Dann funkioniert obere Variante nicht mehr. Folglich benötige ich so eine Art intelligenten Replacer, wahrscheinlich mit einem Platzhalter (hab ihn mal XXX genannt)...
$search = array('[img]XXX[/img]'); $replace = array('<img src="XXX" alt="">'); $message2 = str_replace($search, $replace, $message1); Habt ihr Ideen oder Codeschnipsel für mich?
--
|
|
Profil || Suche
|
001
23.11.2009, 19:36
Bluthund
|
Einen regulären Ausdruck benutzen?
\[img\]((([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?)\[/img\] Den Ausdruck für den URI hab ich jetzt einfach mal aus RFC 2396 stibitzt. Evtl wäre es noch sinnvoll das ganze auf übliche Webprotokolle (konkret http und ftp für Bilder in Foren) einzuschränken (das wäre dann die zweite Gruppe).
Update: Etwas konkretisierter:
\[img\](((http|ftp):)(//([^/?#]*))([^?#]*)(\?([^#]*))?)\[/img\] Und dann halt einfach ein preg_replace.
Update 2: Da die Prüfung auf einen validen uri wahrscheinlich schon von der Boardsoftware übernommen wurde, kommst du wahrscheinlich auch mit einem einfacheren Ausdruck hin:
\[img\](\S+)\[/img\] Update 3: Wobei mir gerade nicht ganz klar ist, wo das Problem bei deiner Variante liegt. Ich habe gerade mal testweise
<?php
$strings = array('[img]foo[/img]', '[url=][img]foo[/img][/url]'); $search = array('[img]', '[/img]'); $replace = array('<img src="', '" alt="" />');
foreach ($strings as $v) { echo str_replace($search, $replace, $v); echo "\n"; } ?> laufen lassen und das liefert wie erwartet<img src="foo" alt="" /> [url=]<img src="foo" alt="" />[/url] oder möchtest du so einen Kram wie [url][img]foo[/img][url] matchen?
--
The C language combines all the power of assembly language with all the ease-of-use of assembly language. "humorig is n blödwort :>" by -CarniGGeLjumpR-
Dieser Beitrag wurde am 23.11.2009 um 20:41 von Bluthund bearbeitet.
|
|
Profil || Suche
|
002
24.11.2009, 09:17
chriss
|
Such’ Dir doch einfach die Funktion vom WBB3 heraus und nutz’ diese?
--
|
|
Profil || Suche
|