仅从URL检索类别ID

时间:2012-03-25 10:04:58

标签: php regex seo

我的网址结构为www.site.com/listings/232-real-estate,其中232是类别ID,不动产是我的类别名称。

我想只检索数字ID,用于使用类别ID从数据库中提取数据。我该怎么做?

3 个答案:

答案 0 :(得分:1)

您可以使用以下简单的内容:

<?php
preg_match_all('#(\d+)#', $url, $matches);
$catid = $matches[0];
?>

但是这没有适当的检查。理想情况下,您希望基于/:

进行拆分
<?php

$elements = explode('/',$url);
$category = $elements[2];
$subelements = explode('-',$category);
$categoryid = intval($subelements[0]);

?>

答案 1 :(得分:0)

您可以使用preg_replace

id = preg_replace('/^.*\/([0-9]*)-[^\/]*$/','$1')

这假定网址中的最后一个/就在类别ID之前。

答案 2 :(得分:0)

如果232-real-estate存储在变量$var中,您可以使用以下方式获取ID:

$id = strtok($var, '-');

顺便说一下,得到这个名字是微不足道的:

$name = strtok(''); // returns: estate-agent