php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.02.2006, 18:35  
Benutzer
 
Registriert seit: 25.09.2005
Beiträge: 41
reimondo
Standard Problem mit der preg_replace - Ersetzen einer Zeichenkette

Hallo,
ich habe folgendes Rroblem:

ich habe ein Feld in einer Tabelle, in der die Postings meines Forums stehen. Diese Postings enthalten html-Code. Diesen möchte ich jetzt durch bbCode ersetzen. Es klappt auch überall, nur beim img-Tag nicht.

Folgende Möglichkeiten bestehen:
1. [img]xyz.jpg[/img]
2. [img]xyz.jpg[/img]

Des Weiteren können in einem Posting auch mehrere img-Tags direkt hintereinander vorkommen. Ebenso kann einer mal das border="0" enthalten, ein nachfolgdener nicht. Hier sind alle Kombinationen möglich.

Ersetzt werden sollen alle img-Tags (egal ob mit oder ohne "border") durch

[img]xyz.jpg[/img]

border="0" fällt also unter den Tisch.

Folgender Code erlaubt bereits das richtige Ersetzen von mehreren img-Tags nur mit dem Problem, dass da kein border="0" enthalten sein darf, dann klappts nicht:

PHP-Code:
$image preg_replace('/\[img](.*?)[/img]/si''[img]\\1[/img]'$image); 
Ich habe bereits das "si" durch "mi" ersetzt. Gleicher Effekt.
Wo ist liegt das Problem? Und wie könnte ich z.B. überprüfen, ob es sich wirklich nur um [img]...[/img] handelt? Also genau dieser String?

Bin schon bald am Verzweifeln. Danke.
reimondo ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.02.2006, 20:46  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Dann mach das mal so:
PHP-Code:
<?php
$image 
preg_replace('/\[img](.*)[/img]/isU''[img]\\1[/img]'$image);
?>
Corvin ist offline  
Alt 07.02.2006, 21:05  
Benutzer
 
Registriert seit: 25.09.2005
Beiträge: 41
reimondo
Standard

Genial, besten Dank. Wenn man den Quellcode so sieht, ist es ganz einfach.
Mal sehen, ob ich es jetzt auch mit dem <a href...>-Tag hinbekomme...

Danke nochmal.
reimondo ist offline  
Alt 07.02.2006, 21:06  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Ist ja eigentlich fast das gleiche..
Corvin ist offline  
Alt 07.02.2006, 21:06  
Gast
 
Beiträge: n/a
Standard

Zitat:
ist es ganz einfach
abwarten
 
Alt 07.02.2006, 21:21  
Benutzer
 
Registriert seit: 25.09.2005
Beiträge: 41
reimondo
Standard

Na, immerhin klappt es ja so:

PHP-Code:
preg_replace('/\<a href=\"(.*?)\"(.*?)\>(.*?)\<\/a\>/si' '[url=$1]$3[/url]' $url); 
Das einzige, was ich jetzt nicht wei�, ist, wie ich �berpr�fe, ob am Anfang des <a href...>-Tags etwas zwischen dem a und dem href steht?

So klappt es nicht:

PHP-Code:
preg_replace('/\<a (.*?) href=\"(.*?)\"(.*?)\>(.*?)\<\/a\>/si' '[url=$1]$3[/url]' $url); 
WEi� da jemand Rat??
reimondo ist offline  
Alt 07.02.2006, 21:28  
Benutzer
 
Registriert seit: 25.09.2005
Beiträge: 41
reimondo
Standard

Komisch, ich hätte schwören können, dass es mit folgendem Code nicht geklappt hat, jetzt tut er es aber doch...

PHP-Code:
<?php
preg_replace
('/\<a(.*?)href=\"(.*?)\"(.*?)\>(.*?)\<\/a\>/si' '[url=$2]$4[/url]' $url);
?>
Juhu....
reimondo ist offline  
Alt 07.02.2006, 21:58  
Gast
 
Beiträge: n/a
Standard

Zitat:
Na, immerhin klappt es ja so:
Zitat:
... <a href=\"(.*?) ...
Häää, hab ich getrunken, oder ging es noch eben um Bilder ?
 
Alt 07.02.2006, 22:05  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von reimondo
Mal sehen, ob ich es jetzt auch mit dem <a href...>-Tag hinbekomme...
Corvin ist offline  
Alt 07.02.2006, 22:06  
Benutzer
 
Registriert seit: 25.09.2005
Beiträge: 41
reimondo
Standard

Ja, ging es auch, nur dann brauchte ich es auch mit den Link (siehe drei Postings weiter oben).
Vielleicht hast du ja getrunken ? :wink:

Besten Dank noch mal an alle.
reimondo ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Timestamp problem phrain PHP Tipps 2008 2 04.04.2008 09:41
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
Leerzeichen ersetzen Problem bei dateien mokus PHP Tipps 2006 20 24.05.2006 19:51
geschachtelten array sortieren, enter ersetzen und umlaute moose PHP Tipps 2006 5 20.04.2006 12:24
String ersetzen Benshee PHP Tipps 2006 4 02.04.2006 21:43
MySql: Suchen und ersetzen Problem faragerri Datenbanken 5 02.03.2006 15:20
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Zeichenkette von hinten her abschneiden Spiff PHP-Fortgeschrittene 9 04.02.2006 18:22
Problem: Zeichen in ganzer Tabelle ersetzen Datenbanken 1 03.12.2005 21:21
[Erledigt] Problem mit Backslash Patrick Schwarz PHP Tipps 2005-2 5 26.07.2005 09:54
[Erledigt] Problem mit User/Group: nobody(99)/99 Server, Hosting und Workstations 3 09.07.2005 15:31
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] includ. Text ersetzen ohne vars PHP Tipps 2004 3 13.09.2004 23:16
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
preg_replace img, preg_replace ersetzen, ereg_replace ersetzen, preg_replace, php preg_replace img, ereg_replace preg_replace ersetzen, preg_replace href ersetzen, preg_replace / ersetzen, preg_replace <img, preg_replace tags ersetzen, preg_replace a tag, php preg_replace tags, preg_replace tags, preg_replace alle ersetzen, preg_replace tag, php href ersetzen, php preg_replace tag, php preg_replace, preg_replace [img], php preg_replace tags ersetzen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:45 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.