Aus einem String etwas löschen, einen html Ausgabebefehl <img................./>

Ich möchte gerne in einem String etwas löschen.

<img width="300" height="400" src="/images/bild.jpg" alt="Bildname" />

Mein Problem ist, das es nicht immer das gleiche ist sondern zwischen zwei
Befehlen ist.

<img................./>

Also alles was hier zwischen liegt

Michael
Michael Tomala [ Mi, 14 November 2007 14:50 ] [ ID #1870688 ]

Re: Aus einem String etwas löschen, einen html Ausgabebefehl <img................./>

Michael Tomala schrieb:
> Ich möchte gerne in einem String etwas löschen.
>
> <img width=3D"300" height=3D"400" src=3D"/images/bild.jpg" alt=3D"Bildn=
ame" />
>
> Mein Problem ist, das es nicht immer das gleiche ist sondern zwischen z=
wei
> Befehlen ist.
>
> <img................./>
>
> Also alles was hier zwischen liegt
>
> Michael

http://de2.php.net/manual/en/function.preg-replace.php

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Mi, 14 November 2007 14:55 ] [ ID #1870689 ]

Re: Aus einem String etwas löschen, einen html Ausgabebefehl <img................./>

ich versteh das aber nicht ganz.

echo preg_replace("/Katze/", "Maus ", $string);

Wenn ich es so anwende wird Katze mit Maus getauscht

ich möchte aber das der wert zwischen zwei Begriffe bzw. Zeichen ersetzt
wird.

<img width="300" height="400" src="/images/bild.jpg" alt="Bildname" />

also alles zwischen

<img und />


"Joerg Behrens" <behrens [at] takenet.de> schrieb im Newsbeitrag
news:5q0d1mFsv6nsU1 [at] mid.individual.net...
Michael Tomala schrieb:
> Ich möchte gerne in einem String etwas löschen.
>
> <img width="300" height="400" src="/images/bild.jpg" alt="Bildname" />
>
> Mein Problem ist, das es nicht immer das gleiche ist sondern zwischen zwei
> Befehlen ist.
>
> <img................./>
>
> Also alles was hier zwischen liegt
>
> Michael

http://de2.php.net/manual/en/function.preg-replace.php

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Michael Tomala [ Mi, 14 November 2007 15:29 ] [ ID #1870692 ]

Re: Aus einem String etwas löschen, einen html Ausgabebefehl <img................./>

Michael Tomala schrieb:
> ich versteh das aber nicht ganz.
>
> echo preg_replace("/Katze/", "Maus ", $string);
>
> Wenn ich es so anwende wird Katze mit Maus getauscht
>
> ich möchte aber das der wert zwischen zwei Begriffe bzw. Zeichen ersetzt
> wird.

Deswegen hat Jörg auch preg_replace und nicht str_replace genannt ;-) Du
musst halt Reguläre Ausdrücke dafür verwenden.

>
> <img width="300" height="400" src="/images/bild.jpg" alt="Bildname" />
>
> also alles zwischen
>
> <img und />

sowas wie
preg_replace('/<img.+?>/', '', $string);
müsste funktionieren.

Christoph
Christoph Bersch [ Mi, 14 November 2007 16:07 ] [ ID #1870695 ]

Re: Aus einem String etwas löschen, einen html Ausgabebefehl <img................./>

Michael Tomala schrieb:
> ich versteh das aber nicht ganz.
>
> echo preg_replace("/Katze/", "Maus ", $string);
>
> Wenn ich es so anwende wird Katze mit Maus getauscht
>
> ich möchte aber das der wert zwischen zwei Begriffe bzw. Zeichen erse=
tzt
> wird.

Fuer dein obiges Beispiel haette man ja auch str_replace genommen und
nicht preg_replace. Hier kann man ein Pattern erstellen und verwenden.
Als Begrenzer (Delimiter) nimmt man dann Zeichen welche im Pattern
selber nicht vorkommen damit man nicht escapen brauch.

http://de2.php.net/manual/en/reference.pcre.pattern.syntax.p hp

Wobei es im Netz bessere Einstiegsseiten gibt.

1. http://www.regenechsen.de/phpwcms/index.php?regex
2. Suchmal nach der Windows version des "Regex Coach"


> <img width=3D"300" height=3D"400" src=3D"/images/bild.jpg" alt=3D"Bildn=
ame" />
>

<?php
$str =3D 'hier steht text mit einem IMG <iMg src=3D"foo.png" width=3D"100=
"
height=3D"100" /> tag drin';
$pattern =3D '#<img.+?>#i';
$res =3D preg_replace($pattern, '', $str);
var_dump($res)
?>

Gruss
Joerg


--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Joerg Behrens [ Mi, 14 November 2007 16:21 ] [ ID #1870696 ]

Re: Aus einem String etwas löschen, einen html Ausgabebefehl <img................./>

Joerg Behrens schrieb:
> Michael Tomala schrieb:

>> ich möchte aber das der wert zwischen zwei Begriffe bzw. Zeichen
>> ersetzt wird.

> <?php
> $str = 'hier steht text mit einem IMG <iMg src="foo.png" width="100"
> height="100" /> tag drin';
> $pattern = '#<img.+?>#i';
> $res = preg_replace($pattern, '', $str);
> var_dump($res)
> ?>

$str = '<img src="#" alt="Hint: > im Attribut ist valides XHTML." />';

Also muss man das Pattern verändern. Wenn es sich wirklich um XHTML
handelt, dann würde #<img.+?/># passen. In HTML hingegen ist das Tag
erst bei einem > zu Ende, welches sich nicht zwischen ' oder " befindet.
Das wird dann schwieriger.

Ausserdem will der OP nur die Zeichen zwischen "<img" und "/>" ersetzen,
nicht das gesamte Tag entfernen. Warum auch immer.
dafox [ Mi, 14 November 2007 18:40 ] [ ID #1870701 ]
PHP » de.comp.lang.php.misc » Aus einem String etwas löschen, einen html Ausgabebefehl <img................./>

Vorheriges Thema: Variablen-Bezeichnungen via For-Schleife festlegen
Nächstes Thema: E70 als wifi access point?