Knifflig? Bild mit Pfad aus String filtern

Hallo Kollegen,

ich möchte einen den Bildpfad mit Bild freilich aus einem String
filtern. Der String schaut so aus:

PHP:
<tr>
<td><img title="xyxcyxc" src="../../datenbank/bilder/bildsada.jpg" alt="asdasd" width="300" height="225"><br /></td>
</tr>

Wir kriege ich jetzt den Wert
../../datenbank/bilder/bildsada.jpg

aus dem String?

Danke für die Hilfe und sorry für mein Geschreibsel,
ich hab grad Schädelweh.

Egon
 
Hallo Egon,

am einfachsten ist das wohl mit den Stringoperationen [phpf]strpos[/phpf] und [phpf]substr[/phpf]:
PHP:
$start = strpos($html, 'src="') + 5;
$end = strpos($html, '"', $start);
$path = substr($html, $start, $end - $start);

Grüße, Matthias
 
Hi,

hier mal, als Alternative, der Regexp-Weg.
Das Pattern kann selbstverständlich weitaus spezifischer sein. :rolleyes:
Kriegs gerade ausm Kopf nicht schöner hin.
Aber sollte so auf jedenfall auch gehen.

PHP:
$pattern = '!src="(.*?)"!is';
$matches = array();
 
if (!preg_match($pattern, $html, $matches))
{
    //nix gefunden, error handling ...
}
else
{
    $src = $matches[1];
}


Greetz

Shrink
 
Und "Einzeilen-Postings".

Vergesst mir bei dem ganzen bloß nicht, dass src in mehreren Varianten auftauchen kann, die nicht immer ganz valide seien müssen.

HTML:
<img src="bild">
<img src='bild'>
<img src=bild>
<img src=bild />
<img src = " bild " >
..........

Insofern hätte ich vorhin fast schon Tidy vorgeschlagen aber eine ordentliche Funktion mit strpos oder ein guter RegExp tut es hier auch.
 
Aber der Punkt ist ja, dass dieses Script bestimmt nicht universelle Verwendung finden wird, sondern ausschließlich für den Poster selbst implementiert wird - und da er höchstwarscheinlich immer im gleichen Stil codet, sollte das an dieser Stelle zu vernachlässigen sein...
 
danke Leute, mehr als ich erwarten konnte. Super!

Und Freak, merke dir eines fürs Leben:
Wenn man ab und an Leuten hilft, kommt sicherlich auch etwas zurück.
Nur negativ denken ist schlecht fürs Qi.
 
Zurück