2016-12-08 2 views
-1

Ich habe Zeichenfolge mit mehreren Image-Tags drin. Gefällt Ihnen diesesFnd spezifische Stelle in Zeichenfolge und Daten davon erhalten

<img src="/files/028ou2p5g/blogs/9d66329f4/5844644f69fe7-64.jpg"> 

I FIRST solchen Tag finden möchten, und Bildnamen erhalten von ihm 5844644f69fe7-64.jpg Wie dies in PHP asuming getan werden kann, gibt es eine Menge anderer Text ist und Tags in der Zeichenfolge?

+0

Ich wähle diese Frage als Wegthema zu schließen, weil nicht eindeutig zu beantworten. Die Antwort funktioniert nicht vollständig. Bitte schließe es Ich habe andere mit einfacherer Frage geöffnet. – David

Antwort

1

Verwenden Sie keine Regex dafür. Verwenden Sie den DOM-Parser von PHP oder eine Alternative, um die Tags zu extrahieren. Verwenden Sie dann die PHP-Funktion basename() für das Element src, um den Dateinamen zu extrahieren.

+0

Nicht, dass dies nicht funktioniert, aber die Verwendung von Regexes ist in Ordnung für Teilmengen von HTML, wie dies ist. – Iluvatar

4

Sie sollten verwenden, was @moopet vorgeschlagen hat. Dies ist der Code, aber bitte geben Sie @moopet Kredit.

$str = '<img src="/files/028ou2p5g/blogs/9d66329f4/5844644f69fe7-64.jpg">'; 

$doc = new DOMDocument(); 
$doc->loadHTML($str); 

$first_img = $doc->getElementsByTagName("img")[0]; 
var_dump(basename($first_img->getAttribute('src'))); 
0

Verwenden preg_match_all() alle Vorkommen zu finden und dann die erste bekommen.

Beispiel:

<?php 
preg_match_all('/<\s*img[^<>]+?src\s*=\s*[\'\"][^<>\'\"]+?\/([^<>\'\"\/]\.jpg)/', $html, $matches, PREG_SET_ORDER); 
var_dump($matches[0]); 
?> 
Verwandte Themen