从URL中提取Flickr照片ID

时间:2014-02-11 13:40:26

标签: php regex

我需要在PHP中提取一段URL。从网址http://www.flickr.com/photos/28370443@N08/7885410582我只需要7885410582部分。

我的代码:

$string2 = 'http://www.flickr.com/photos/28370443@N08/7885410582';
preg_match_all('~s/ (.*?) /~i',$string2,$matches, PREG_PATTERN_ORDER);
echo $matches[1][0] . '<br />';

任何人都可以看一下并为我纠正吗? 提前谢谢。

4 个答案:

答案 0 :(得分:1)

你可以使用

$data = explode("/",$url)
$value = $data[sizeof($data)-1]

答案 1 :(得分:0)

试试这个正则表达式:

\d+$

将在字符串结束之前找到所有数字

或:

(?<=/)\d+$

将在字符串结束之前/符号后找到所有数字

答案 2 :(得分:0)

如果您想要的标识符始终是URL中的最后一个,请不要使用正则表达式而是使用简单的字符串函数。

<?php

$url = 'http://www.flickr.com/photos/28370443@N08/7885410582';

$flickr_id = substr($url, strrpos($url, "/") + 1);

echo $flickr_id; // 7885410582

答案 3 :(得分:0)

试试这个:

preg_match_all('~^.+/(\d+)$~',$string2,$matches);

描述

Regular expression visualization

演示

http://regex101.com/r/aL2hL3

示例代码

$string2 = 'http://www.flickr.com/photos/28370443@N08/7885410582';
preg_match('~^.+/(\d+)$~',$string2,$matches);
echo  $matches[1]; // 7885410582