我有其中包含多個圖像標記的字符串。 像這樣找到字符串中的特定位置並從中獲取數據
<img src="/files/028ou2p5g/blogs/9d66329f4/5844644f69fe7-64.jpg">
我想找到FIRST這樣的標籤,並獲取圖像的名字從它 5844644f69fe7-64.jpg 如何在PHP asuming來這做的工作還有很多其他的文字和標籤中的字符串?
我有其中包含多個圖像標記的字符串。 像這樣找到字符串中的特定位置並從中獲取數據
<img src="/files/028ou2p5g/blogs/9d66329f4/5844644f69fe7-64.jpg">
我想找到FIRST這樣的標籤,並獲取圖像的名字從它 5844644f69fe7-64.jpg 如何在PHP asuming來這做的工作還有很多其他的文字和標籤中的字符串?
不要爲此使用正則表達式。使用PHP的DOM解析器或替代解壓縮標籤,然後使用src
元素上的PHP basename()函數來提取文件名。
這並不是行不通的,但使用正則表達式對於HTML子集來說很好,就像這樣。 – Iluvatar
你應該像@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')));
使用preg_match_all()
找到所有的出現,然後得到第一個。
例子:
<?php
preg_match_all('/<\s*img[^<>]+?src\s*=\s*[\'\"][^<>\'\"]+?\/([^<>\'\"\/]\.jpg)/', $html, $matches, PREG_SET_ORDER);
var_dump($matches[0]);
?>
我投票關閉這一問題作爲題外話,因爲 沒有清楚回答。答案沒有完全工作。請關閉它我打開了另一個簡單的問題。 – David