2013-10-03 53 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);