我需要在php中解析一个像facebook这样的按钮的URL。我现在做的是:
<?php
echo curPageURL();
?>
但是我的文章有时会长2到3页,所以我想解析没有页码的网址,以便类似按钮用于文章的第一页。有时页码也不存在。
我的网址看起来像http://www.mydomain.com/23/My-Article-Title/2/
最后的2是指示第2页的页码。文章的第1页虽然看起来像
http://www.mydomain.com/23/My-Article-Title/
如何解析php中的url以删除页码(如果存在)?
所以如果有页码,我只想解析它。
答案 0 :(得分:1)
您可以将正则表达式与preg_replace一起使用:
echo preg_replace('#/[0-9]+(/)?$#', '/', 'http://www.mydomain.com/23/My-Article-Title/34/');
// output: http://www.mydomain.com/23/My-Article-Title/
上述正则表达式会删除URI末尾显示的所有/
+ numbers
+ (optional) /
。
答案 1 :(得分:1)
preg_replace('=\d+/$=', '', $url);
答案 2 :(得分:0)
尝试使用:
preg_replace('/^(.+[a-zA-Z]\/)[\d]*\/?$/i', '\\1', $str);
答案 3 :(得分:0)
$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>";
}
?>