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
函数的好教程吗?
也许我忘了说...我不知道图像名称或图像名称到底有多长。我需要函数只提取上一个正斜杠的右侧。
答案 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
“;
希望这有帮助!