Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- [PHP & MySQL] preg_replace Problem (https://www.gegen-bilderklau.net/thread.php?threadid=152259)


Geschrieben von Julia712 am 18.03.2009 um 09:46:

  preg_replace Problem

Hallöchen ihr fröhlich

So, ich hantiere jetzt schon seit 2 Stunden an dem blöden Dingen rum und bin scheinbar echt zu blöd dazu +grml+
Daher dachte ich mir, ich frag hier mal an, weil hier bestimmt jemand Rat weiß ^.^

Und zwar möchte ich zwischen <PRE><CODE CLASS=PHP> und </CODE></PRE> alle <br /> durch ein /n ersetzen.
Hab's mal versucht aber so geht es nicht:

php:
1:
2:
3:
$suchmuster'<br />';
$ersetzung '/n';
preg_replace("<PRE><CODE CLASS=PHP>".$suchmuster."</CODE></PRE>"$ersetzung$GewandelterText);



Wäre echt klasse, wenn mir da jemand helfen könnte!
Lg, Julia



Geschrieben von 1Sm!le am 18.03.2009 um 11:31:

 

Den konkreten Code hab ich leider gerade nicht zur Hand, aber vom Prinzip her: Preg-Replace benötigt einen Regulären Ausdruck.
1. Du wirst <PRE> und co escapen müssen, also alle spitzen Klammern und Slashes mit einem \ davor versehen müssen.
2. Dein Code sagt derzeit: Wenn <PRE><CODE CLASS=PHP><br /></CODE></PRE> gefunden würde in $GewandelterText, dann ersetze ihn durch \n und speichere das Ergebnis nirgendwohin ...
Korrekt wäre:
Wenn in $text ein Code vom Muster <PRE><CODE CLASS=PHP>...irgendwas...<br/>...irgendwas...</CODE></PRE> enthalten ist, dann ersetzt <br/> durch \n und speichere das Ergebnis in $gewandelterText.
php:
1:
$gewandelterText preg_replace("<PRE><CODE CLASS=PHP>(?:.*)(".$suchmuster.")(?:.*)</CODE></PRE>","\\n",$text);

Aber keinerlei Garantie, ob das jetzt geht ... nur so die Richtung.



Geschrieben von Julia712 am 18.03.2009 um 17:21:

 

Hey!

Erst einmal Danke für deine Hilfe fröhlich
Jetzt bin ich immerhin schon soweit, dass er etwas ersetzt +lach+

php:
1:
$GewandelterText preg_replace("/<PRE><CODE CLASS=PHP>(?:.*)(".$suchmuster.")(?:.*)<\/CODE><\/PRE>/e","\\n",$text);

So sieht das ganze jetzt aus, aber ich habe noch 2 kleine Probleme:

1. Er ersetzt mir von <PRE> bis </PRE> alles mit n und eigentlich soll er ja nur das <br /> mit \n ersetzen...
2. Er macht das ganze nur einmal. Kann man ihn dazu bringen, dass er das ganze auch öfter macht? Da ja mehrere dieser Codes vorhanden sind...



Lg, Julia


Forensoftware: Burning Board, entwickelt von WoltLab GmbH