eregi_replace oder so

socKe|bla

Erfahrenes Mitglied
huhu ihr da
ich hab mal ne frage, in allen möglichen foren kann man den code hier benutzen:
Code:
[urrl=http://www.irgendwas.de]gute homepage[/urrl]
(ich hab mal urrl gemacht, damits nicht ersetzt wird...)

wie ist nu der code zum ersetzen nach
Code:
<a href=http://www.irgendwas.de target=_blank>gute homepage</a>

ich weiss das da jetzt sowas wie
PHP:
$string = eregi_replace("/§$)/§%","§$(/§")(/$",$string);
kommt, nur ich würd mich freuen wenn mir einer die zeichen erklären könnte, denn ich behalts logischerweise nur wenn ichs auch versteh...
 
k, danke schonmal.
ich hab mich da jetzt mal schlauer gemacht und mir das hier zusammengereimt, nur das tuts noch nicht...
PHP:
$string = preg_replace("!/[url/=(.*?)](.*?)/[//url]!","<br>url: $1<br>titel: $2",$string);
was ist daran falsch?
 
mit [ und ] wird bei regulären ausdrücken, wie auf der site beschrieben, eine zeichenmenge definiert (glaube ich zumindest habs jetzt nit nachgelesen) deshalb musst du die im suchmuster escapen also \[ und \] .. kann sein dass noch andre fehler drin sind aber der ist mir jetzt als erstes aufgefallen :D
 
PHP:
$string = preg_replace("=( \\[url \\=)(.*)( \\])(.*)( \\[/url \\])=i", "<br>url: \\\\2 <br>titel: \\\\4", $string);
hab nicht ausprobiert obs klappt könnte aber rein theoretisch gehen :D
allerdings macht das für mich irgendwie keinen sinn..da das jetzt kein hyperlink wird, aber es ist ja dein script :-)
hoffentlich parst das board den code nicht kaputt !
*edit*
hat den code kaputt geparst :D .. ma sehen ob ichs hinkrieg ohne das der code zerstückelt wird
musst halt die leerzeichen zwischen den bakcslashes und so entfernen...und ich bin mir überhaupt nicht sicher ob man das = escapen muss oder nicht :(
ARGH DAS PARST ALLES KAPUTT :((((
*/edit*
*nochmal edit*
so bis auf die leerzeichen ist der code jetzt ok .. puhh war das anstrengend :-)
*/nochmal edit*
 
Zuletzt bearbeitet:
autsch, ich bin so bekloppt, ich hab die falschen slashes benutzt...

wenn ich
PHP:
$string = preg_replace("!\[url\=(.*?)\](.*?)\[\/url\]!","url: $1<br>titel: $2",$string);
benutz gehts... *froi*
 
mmh lol aber das hatte ich mir schon fast gedacht :D
aber hab fragen:
1. die ! am anfang und ende deines suchmusters, sind doch teil von diesem und haben keine besondere bedeutung, oder? (hab nämlich grad nach denen gesucht und find die nicht :-) )
2. "Verwendet man einen Suchausdruck mit den preg*-Funktionen, dann ist der Suchausdruck in sogenannte Begrenzerzeichen ( Delimiter ) einzuschließen, hinter denen noch Optionen mit angegeben werden können. Meistens verwendet man entweder die Schrägstriche / oder Gleichheitszeichen = ." -> ist von der seite die ich dir gegeben hab..aber wieso klappt das denn bei dir obwohl du keine Delimiter drin hast? oder hast du "/" verwendet und das board hat die weggeparst? oder versteh ich was voll falsch?
3. du verwendest $1 und $2 -> wieso?
sind das variablen aus deinem script oder kann man sich auch mit den $ zeichen auf die () im suchmuster beziehen? ich dachte immer das geht nur mit den 2 backslashes ( "\\\\ " )???
verwirrt und unwissend, euer brau :-)
 
lol, heute das erste mal mit gearbeitet und schon muss ich erklären ^^

also, meine delimiter sind die !, sollte wohl punkt 1 und 2 erklären :)
und das mit dem $1 und $2 ist genau das gleiche wie mit den 2 backslashes...
 
aso..naja dann :-)
danke...
liegt wohl daran das ich noch nen ziemlichen kater hab und irgendwie den text nit so richtig gepeilt hab :-)
mein lateinlehrer würde sagen: die grundtechniken des lesens sind im alkoholisierten zustand nicht mehr anwendbar, da die wahrnehmung negativ beeinflusst wird :-)
mfg christoph
 
Zurück