我要做的是通过preg_match从网址获取分页
示例:http://www.google.com/page/223
我需要的是这个网址是“223”
我尝试使用此代码但无效...
preg_match('~"http://www.google.com/page/(.*)"~iU', 'http://www.google.com/page/223', $page);
print_r($page);
答案 0 :(得分:2)
第一种方式
preg_match("/[^\/]+$/", "http://www.google.com/page/223", $matches);
$last_word = $matches[0]; // 223
第二种方式
substr(strrchr(rtrim($url, '/'), '/'), 1)
第三种方式
$ex = explode("/",$_SERVER["PHP_SELF"]);
echo end($ex);
答案 1 :(得分:1)
为什么在模式中使用"
?字符串中没有引号。 U
也是错误的。
应该是:
preg_match('~http://www.google.com/page/(.*)~', 'http://www.google.com/page/223', $matches);
echo $page = $matches[1];
答案 2 :(得分:1)
不需要正则表达式或爆炸,只需使用字符串函数:
$url = "http://www.google.com/page/223";
$lastPart = substr($url, strrpos($url, "/")+1); // +1 to move 1 past the /
如果您希望它更安全(例如'/ page /'必须存在):
$url = "http://www.google.com/page/223";
$lastPart = substr($url, strrpos($url, "/page/")+6); // +6 to move 1 past the '/page/'
if($lastPart===false){ $lastPart = 0; echo "Not found";}
总是尝试使用字符串函数而不是正则表达式/数组函数,字符串函数要快得多。