如何使用php解析url

如何使用php解析url,php,parsing,url,Php,Parsing,Url,我需要用php解析一个类似facebook的按钮的URL。我现在做的是: <?php echo curPageURL(); ?> 但是我的文章有时有2到3页长,所以我想解析url而不需要页码,这样like按钮就可以用于文章的第一页。有时页码也不存在 我的url看起来像这样 末尾的2是表示第2页的页码。文章的第一页是这样的 如何在php中解析url以删除页码(如果存在) 因此,我只想在有页码的情况下解析它。您可以将正则表达式用于: 上面的正则表达式删除URI末尾出现的任何/

我需要用php解析一个类似facebook的按钮的URL。我现在做的是:

<?php
  echo curPageURL();
?>

但是我的文章有时有2到3页长,所以我想解析url而不需要页码,这样like按钮就可以用于文章的第一页。有时页码也不存在

我的url看起来像这样

末尾的2是表示第2页的页码。文章的第一页是这样的

如何在php中解析url以删除页码(如果存在)


因此,我只想在有页码的情况下解析它。

您可以将正则表达式用于:

上面的正则表达式删除URI末尾出现的任何
/
+
数字
+
(可选)/

尝试使用:

 preg_replace('/^(.+[a-zA-Z]\/)[\d]*\/?$/i', '\\1', $str);
$url='1!'http://www.mydomain.com/23/My-Article-Title/2/';
$url\u info=parse\u url($url);
$paths=(空($url\u info['path'])?数组():分解('/',修剪($url\u info['path'],'/'));
如果($len=count($paths))>0&&is_为数值($paths[$len-1]))
{
回声“;
打印(路径);
回声“;
}
?>

我确信给出的所有答案都是有效的,因为我对正则表达式了解得不够,不知道为什么其中一个会比其他任何一个更好。但这个答案是最简洁的,它似乎符合我的要求。所以我把它标记为答案。@webb
preg_replace('=/\d+/$=','/',$url)
 preg_replace('/^(.+[a-zA-Z]\/)[\d]*\/?$/i', '\\1', $str);
 preg_replace('=\d+/$=', '', $url);
$url = 'http://www.mydomain.com/23/My-Article-Title/2/';
$url_info  = parse_url($url);
$pathes = (empty($url_info['path']) ? array() : explode('/', trim($url_info['path'], '/')));

if (($len = count($pathes)) > 0  && is_numeric($pathes[$len-1]) )
{
    echo "<pre>";
    print_r($pathes);
    echo "</pre>";
}
?>