Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
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:
Quellcode:$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)...
Quellcode:$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?

--

zum Seitenanfang zum Seitenende Profil || Suche
001
23.11.2009, 19:36
Bluthund



Einen regulären Ausdruck benutzen?

Quellcode:\[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:
Quellcode:\[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:
Quellcode:\[img\](\S+)\[/img\] Update 3:
Wobei mir gerade nicht ganz klar ist, wo das Problem bei deiner Variante liegt. Ich habe gerade mal testweise
Quellcode:<?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 erwartetQuellcode:<img src="foo" alt="" />
[url=]<img src="foo" alt="" />[/url]
oder möchtest du so einen Kram wie Quellcode:[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.
zum Seitenanfang zum Seitenende Profil || Suche
002
24.11.2009, 09:17
chriss



Such’ Dir doch einfach die Funktion vom WBB3 heraus und nutz’ diese?

--

zum Seitenanfang zum Seitenende Profil || Suche