2016-12-08 33 views
-1

我有其中包含多個圖像標記的字符串。 像這樣找到字符串中的特定位置並從中獲取數據

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

我想找到FIRST這樣的標籤,並獲取圖像的名字從它 5844644f69fe7-64.jpg 如何在PHP asuming來這做的工作還有很多其他的文字和標籤中的字符串?

+0

我投票關閉這一問題作爲題外話,因爲 沒有清楚回答。答案沒有完全工作。請關閉它我打開了另一個簡單的問題。 – David

回答

1

不要爲此使用正則表達式。使用PHP的DOM解析器或替代解壓縮標籤,然後使用src元素上的PHP basename()函數來提取文件名。

+0

這並不是行不通的,但使用正則表達式對於HTML子集來說很好,就像這樣。 – Iluvatar

4

你應該像@moopet建議的一樣使用。這是代碼,但請注意@moopet。

$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

使用preg_match_all()找到所有的出現,然後得到第一個。

例子:

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