2013-10-03 52 views
1

我在PHP中使用preg_match函數時遇到了一些問題。我認爲我永遠不會學習如何使用這個功能。我想從HTML中提取圖像的URL,而不需要圖像的名稱。舉例來說,如果我有一些鏈接,圖像:preg_match和圖像URL

"/data/images/2013-10-03/someimage.jpg" 

"http://something.com//data/images/2013-10-03/someimage.jpg" 

如何使用preg_match功能刪除一切留下最後斜線的,所以我可以從網址只圖像名稱?

也許這是更聰明的使用不同的功能,但我不知道哪一個?

P.S.你能給我一些關於preg_match函數的好教程嗎?

也許我忘了說......我不知道圖像名稱或圖像名稱究竟有多長。我需要函數來提取右邊最後一個正斜槓上的內容。

回答

4
$pattern = '/[\w\-]+\.(jpg|png|gif|jpeg)/'; 
$subject = 'http://something.com//data/images/2013-10-03/someimage.png'; 
$result = preg_match($pattern, $subject, $matches); 
echo $matches[0]; //someimage.jpg 
+0

非常感謝你...這工作:) –

1

U需要使用preg_replace()並且你可以嘗試在線使用,以便正常播放,這是一種學習正則表達式的快速方法。 http://preg_replace.onlinephpfunctions.com/

例如:/\/someimage.jpg/替換爲''(null)。

它會從http://something.com//data/images/2013-10-03/someimage.jpg返回http://something.com//data/images/2013-10-03

+0

嗯......我想,我不明白你...或者你!不理解我:) 我需要從url中提取圖像名稱的函數。所以如果我有這樣的事情: http://something.com//data/images/2013-10-03/someimage.jpg。 函數只能返回「someimag e.jpg「 –

+0

也許我忘了說......我不確切地知道什麼是圖像名稱或有多少個字符有名字......我只需要從最後一個正斜槓得到什麼...... –

1

您可以使用Simple HTML DOM解析器在a標籤之間獲得href。 例如:

foreach($ html-> find('a。[class =「your class」]')as $ var) // echo「href。」 > sometext
「;

希望這有助於

+0

不,我不知道需要:)我需要一些圖像名稱提取從url –

3

無需正則表達式或任何幻想:

$var = "http://something.com/data/images/2013-10-03/someimage.jpg"; 

$image = basename($var);