preg_match和图像URL

时间:2013-10-03 20:07:38

标签: php preg-match preg-match-all

PHP中的preg_match函数有点问题。我想我永远不会学习如何使用这个功能。我想从没有图像名称的HTML中提取图像的URL。例如,如果我有一些图像链接:

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

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

如何使用preg_match函数删除上一个正斜杠左边的所有内容,这样我才能从URL中获取图像名称?

使用不同功能可能更聪明,但我不知道哪一个?

P.S。你能给我一些关于preg_match函数的好教程吗?

也许我忘了说...我不知道图像名称或图像名称到底有多长。我需要函数只提取上一个正斜杠的右侧。

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:4)

不需要正则表达式或任何花哨的东西:

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

$image = basename($var);

答案 2 :(得分:1)

你需要使用preg_replace(),你可以尝试在线使用常规游戏,这是学习正则表达式的快捷方式。 http://preg_replace.onlinephpfunctions.com/

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

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

答案 3 :(得分:1)

您可以使用Simple HTML DOM Parser来获取a标签之间的href。 例如:

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

希望这有帮助!