| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

19-08-2005, 13:16
|
|
Yooda
Member
|
|
Registriert seit: Jul 2003
Ort: Gelsenkirchen
Beiträge: 229
|
|
Regex für verschiedene img-Tags
Hi ihr alle,
auch ich habe ein Problem mit den (von mir) verhassten Regex...
ich habe verschiedene Texte, die mit einem WYSWYG Editor geschrieben werden in der Datenbank liegen. Es können natürlich auch Bilder vorhanden sein.
Nun gibt es die Option, die Bilder aus der Datenbank (und vom Server)
zu löschen.
Wenn man eine solches Bild löscht, dann sollen die Bilder aus den Texten verschwinden. Sie liegen in folgenden Format vor:
<img height="480" alt="Lageplan" src="http://www.domain.de/gallery/anfahrt.jpg" width="373"/>
Mir ist klar, wie ich Regex suchen lassen "müsste", ich schaffe es aber nicht, einen Pattern zu erstellen...
Es müsste ja so sein:
Suche mir alles was mit
<img änfängt, und mit /> aufhört und dazwischen irgendwo ein
scr="http://www.domain.de/gallery/anfahrt.jpg" hat.
Allerdings gibt es da eine schwierigkeit:
1. Was ist, wenn es so aussieht:
<img height="480" alt="Lageplan" src="http://www.domain.de/gallery/anfahrt.jpg" width="373"/><br/>
Nunja, ich schaffe es nicht, solch ein Regex zu bauen. Wie gehe ich da am besten vor?
Gruß
David
__________________
Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.
|

19-08-2005, 13:19
|
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
\<img.*?src.*?/\>
so?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

19-08-2005, 13:25
|
|
Yooda
Member
|
|
Registriert seit: Jul 2003
Ort: Gelsenkirchen
Beiträge: 229
|
|
Hi mrhappiness,
da bekomme ich eine Fehlermeldung:
Code:
Warning: preg_match_all() [function.preg-match-all]: Delimiter must not be alphanumeric or backslash in /mnt/ja1/04/033/00000010/htdocs/administrator/functions.php on line 2896
Array ( )
Die Suche erfolgt so:
PHP-Code:
while($t_content = mysql_fetch_array($t_query)){
$suchmuster = '\<img.*?src.*?/\>';
$zeichenkette = $t_content['content'];
preg_match_all($suchmuster, $zeichenkette, $treffer, PREG_OFFSET_CAPTURE);
print_r($treffer);
}
__________________
Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.
|

19-08-2005, 13:30
|
|
mrhappiness
PHP Guru
|
|
Registriert seit: Oct 2002
Beiträge: 14.890
|
|
Ich habe keinen Delimiter angegeben
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
|

19-08-2005, 14:10
|
Shurakai
Master  
|
|
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.090
|
|
Zitat:
Original geschrieben von mrhappiness
Ich habe keinen Delimiter angegeben
|
= du musst selber noch delimiter angeben
|

19-08-2005, 14:11
|
|
Yooda
Member
|
|
Registriert seit: Jul 2003
Ort: Gelsenkirchen
Beiträge: 229
|
|
Ich habe nun irgendwie versucht rumzuspielen....
mit deinem Regex:
PHP-Code:
$suchmuster = '#\<img.*?src.*?/\>#';
Zeigt er mir tatsächlich alle Bilder an.
Aber ich möchte ja später mittels
preg_replace()
das gewisse Bild durch ein dummy - Bild ersetzen.
Also habe ich folgendes versucht:
PHP-Code:
$suchmuster = '#\<img.*?src="http://domain.de/gallery/'.$image[0].'".*?/\>#';
Ich habe bestimmt einen grundlegenden Denkfehler...
Gruß
David
__________________
Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.
|

20-08-2005, 19:28
|
|
Yooda
Member
|
|
Registriert seit: Jul 2003
Ort: Gelsenkirchen
Beiträge: 229
|
|
Darf ich noch auf eine Antwort hoffen?
Ich bin kein Stück weitergekommen. Selbst der Versuch mich mit Regex anzufreunden, ist fehlgeschlagen. Ich verstehe es einfach nicht.
Wäre nett, wenn mir jemand helfen könnte.
Viele Grüße
David
__________________
Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.
|

20-08-2005, 19:34
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Zitat:
|
Darf ich noch auf eine Antwort hoffen?
|
Wenn du ne Frage stellst
Wenn du nicht bald die. Fehlermeldung aus dem Codetag nimmst, sicher nicht!
EDIT: ach, du darfst ja aus gutem grund nicht mehr editieren. Dann muss man diesen Thread wohl ignorieren?
Geändert von TobiaZ (20-08-2005 um 19:38 Uhr)
|

20-08-2005, 20:05
|
|
Yooda
Member
|
|
Registriert seit: Jul 2003
Ort: Gelsenkirchen
Beiträge: 229
|
|
OffTopic:
Also das mit dem Editieren ist meines Erachtens eine Überreaktion der Person, die das ausgeführt hat.
1. Ist das Ewigkeiten her.
2. Gibt es doch meines Wissens nach dafür nur eine Verwarnung.
Ich antworte öfters mal schnell auf Postings, was ja wohl eigendlich gewünscht sein sollte, oder?
Da passiert es in der Arbeit, dass man die PHP-Tags vergisst.
Nachdem ich x-mal darauf angesprochen wurde, habe ich diese nicht böswillige Signatur erstellt. Wenn das schon in der Form zensiert wird...
Ich meine mich erinnern zu können, eine Frage gestellt zu haben, und die "Nicht-Funktion" der Lösungsversuche gestern noch bestätigt.
Gruß
__________________
Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.
|

20-08-2005, 20:09
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Zitiere mal bitte. in der Zeit breche ich mal deinen Unsinncode um
|

20-08-2005, 20:13
|
|
Yooda
Member
|
|
Registriert seit: Jul 2003
Ort: Gelsenkirchen
Beiträge: 229
|
|
Zitat:
|
Zitat1: Nunja, ich schaffe es nicht, solch ein Regex zu bauen. Wie gehe ich da am besten vor?
|
Zitat:
|
Zitat 2: Also habe ich folgendes versucht:
|
Zitat:
Zitat3: Ich bin kein Stück weitergekommen. Selbst der Versuch mich mit Regex anzufreunden, ist fehlgeschlagen. Ich verstehe es einfach nicht.
PHP-Code:
$suchmuster = '#<img.*?src="http://domain.de/gallery/'.$image[0].'".*?/>#';
Ich habe bestimmt einen grundlegenden Denkfehler...
|
Wenn du das gemeint hast...
Zitat:
|
breche ich mal deinen Unsinncode um
|
Unsinncode?
__________________
Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.
|

20-08-2005, 20:58
|
Shurakai
Master  
|
|
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.090
|
|
Hallo,
was genau möchtest du denn jetzt ersetzen? Einfach nur das Bild? Wenn ja - die komplette URL oder nur den Dateinamen? Oder was sonst?
|

20-08-2005, 21:01
|
|
Yooda
Member
|
|
Registriert seit: Jul 2003
Ort: Gelsenkirchen
Beiträge: 229
|
|
Hi,
ich möchte lediglich an der Stelle des "vorher existierenden" Bildes einen Dummy setzen. Dummy heißt:
aus
<img height="480" alt="Lageplan" src="http://www.domain.de/gallery/anfahrt.jpg" width="373"/>
wird dann:
<img height="200" alt="Lageplan" src="http://www.domain.de/gallery/deleted.jpg" width="200"/>
also im Grunde nur den Dateinamen und die Größenattribute.
Viele Grüße
David
__________________
Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|