mit eregi_replace aus img Style Classe und src rausholen??

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Mafia GmbH
Mitglied
Beiträge: 355
Registriert: 13.10.2003 16:09

mit eregi_replace aus img Style Classe und src rausholen??

Beitrag von Mafia GmbH »

Hallo habbe folgendes Problem.
Ich möchte im String was bereits HTML Inhalt enthält folgendes mit allen Bilderm machen.
die HTML Variable enthölt sowas:
...<img class="styleleft" title="blalbal" src="http://www.xy.de/z.jpg" alt="" />...

Nun möchte ich um die Bilder einen schönnen Ramen bauen und darum brauche ich einen DIV durm herum.

Das Problem ist dabei aber das "styleleft" float:left; enthält und mir auch alles kaput macht wen ich einfach nur einen div drumherum mache.

Nun soll es aber so aussehen damit es alles klappt:

<div class="styleleft"><img title="blalbal" src="http://www.xy.de/z.jpg" alt="" /></div>


Wie man sieht will ich styleinformation in div übertragen und rest beim <img beibehalten.
Leider weiß ich nicht so recht wie es geht.
Habe schon folgendes Probiert:
eregi_replace('<img class="(.*)"(.*) />', '<div class="\\1"><img \\2 /></div>',$string);

Leider wird alles nur ins Div gepakt und es funktioniert nichts.
Kann jemand bitte eine verbesserung angeben? Habe leider schon vieles Probiert....:(
aurora876
Ehemaliger Übersetzer
Beiträge: 1600
Registriert: 30.08.2008 20:41

Re: mit eregi_replace aus img Style Classe und src rausholen

Beitrag von aurora876 »

geht das ganze auch in verständlich?
ich hab keine ahnung, was du eigentlich genau machen willst und was das eregi_replace usw. damit zu tun haben soll. :o
There are 10 types of people in the world: Those who understand binary and those who don't. :D

Support Toolkit in Deutsch
Benutzeravatar
Mafia GmbH
Mitglied
Beiträge: 355
Registriert: 13.10.2003 16:09

Re: mit eregi_replace aus img Style Classe und src rausholen

Beitrag von Mafia GmbH »

eregi_replace ist eine PHP Funktion die einen String durchlaufen kann und anhang eines Musters es entsrechen manipulieren kann.

Ich möchte eben alle Bilder die in einem Text vorkommen etsrechen mit einem <div> Kontener versehen und die Style Classe die normaller weise beim Bild <img> eingetragen wird ins div übernehmen.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: mit eregi_replace aus img Style Classe und src rausholen

Beitrag von gn#36 »

Die eregi_replace ist übrigens DEPRECATED und wird in zukünftigen PHP Versionen nicht mehr enthalten sein. Ich würde daher eher auf [php:preg_replace] zurückgreifen.

Dein Problem bei dem Ausdruck ist übrigens, dass er "gierig" ist, d.h. er trifft auf so viel wie möglich zu. Bei mehreren Bildern in Folge wird der erste Treffer daher direkt den Anfang des ersten Bildes nehmen und alles bis zum Ende des letzten Bildes enthalten. Versuch stattdessen mal nichtgierige Ausdrücke, also z.B.

Code: Alles auswählen

#<img class="([^"]+)"(.*?) />#i
oder

Code: Alles auswählen

#<img class="([^"]+)"([^>]+)/>#i
(Beides in preg_replace Syntax).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Mafia GmbH
Mitglied
Beiträge: 355
Registriert: 13.10.2003 16:09

Re: mit eregi_replace aus img Style Classe und src rausholen

Beitrag von Mafia GmbH »

Ja so funktioniert es :)

Nun habe ich ein weiteres Problem bekommen.
Nich jedes Bild enthält class="..." und wen das Bild keine Style Class ethält wird das bild auch nicht mehr erkannt.

Kann man da was machen das es jedes Bild nimt? egal ob mit class oder ohne ??
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: mit eregi_replace aus img Style Classe und src rausholen

Beitrag von gn#36 »

Sicher. Wenn du Elemente nur optional haben willst, dann kannst du ein Fragezeichen dahinter hängen:

Code: Alles auswählen

Ich bin (fast )?da!
passt z.B. sowohl auf "Ich bin fast da!" als auch auf "Ich bin da!". Allerdings bin ich mir nicht ganz sicher was dann mit den in diesem Fall enthaltenen Klammerausdrücken passiert, vermutlich wären die einfach leer. Ich würde das in dem Fall daher einfach auf zwei Ausdrücke aufteilen, mit dem einen suchst du die Bilder ohne Klasse und dann die übrigen Bilder mit.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: mit eregi_replace aus img Style Classe und src rausholen

Beitrag von Pyramide »

Warum machst du das ganze überhaupt so kompliziert? Wenn du Bildern einen Rahmen hinzufügen willst, dann mach doch einfach genau das:

Code: Alles auswählen

img {
    border: 3px dotted magenta;
}
KB:knigge
Benutzeravatar
Frank1604
Ehemaliges Teammitglied
Beiträge: 2106
Registriert: 07.11.2007 09:25
Wohnort: Einhausen
Kontaktdaten:

Re: mit eregi_replace aus img Style Classe und src rausholen

Beitrag von Frank1604 »

Pyramide hat geschrieben:Warum machst du das ganze überhaupt so kompliziert? Wenn du Bildern einen Rahmen hinzufügen willst, dann mach doch einfach genau das:

Code: Alles auswählen

img {
        border: 3px dotted magenta;
    }
Weil er nicht nur einen Rahmen haben möchte, sondern einen "schönen" Rahmen.
Mafia GmbH hat geschrieben:Nun möchte ich um die Bilder einen schönnen Ramen bauen und darum brauche ich einen DIV durm herum.
Und ich könnte mir vorstellen, dass für ihn "schön" etwas anderes ist, als ein fetter telekomschweinchenrosaner gepünktelter Rahmen ;)
Gruß, Frank
Meine Meinung steht fest. Bitte verwirrt mich nicht mit Tatsachen!
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: mit eregi_replace aus img Style Classe und src rausholen

Beitrag von Pyramide »

Selbstverständlich war das von mir gepostete nur ein Beispiel und kann durch beliebiges CSS ersetzt werden...
KB:knigge
Antworten

Zurück zu „Coding & Technik“