1

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

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

或者

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

如何使用preg_match函数删除最后一个正斜杠的所有内容,以便我只能从 URL 获取图像名称?

也许使用不同的功能更聪明,但我不知道是哪一个?

PS你能给我一些关于preg_match功能的好教程吗?

也许我忘了说...我不知道图像名称有多长或图像名称到底是什么。我需要仅从最后一个正斜杠中提取右侧的功能。

4

4 回答 4

6
$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
于 2013-10-03T20:18:15.167 回答
5

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

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

$image = basename($var);
于 2013-10-03T20:24:47.407 回答
1

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

例如:/\/someimage.jpg/replace on ''(null)。

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

于 2013-10-03T20:11:09.707 回答
1

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

foreach($html->find('a.[class="your class"]') as $var) // echo "href." >一些文本
“;

希望这可以帮助!

于 2013-10-03T20:11:28.703 回答