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
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
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
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
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
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.