2011-08-29 24 views
0

我需要解析一個URL像Facebook的按鈕像一個URL。我現在做的是這樣的:我該如何解析一個網址與php

<?php 
    echo curPageURL(); 
?> 

,但我有有時是2或三頁長,所以我想解析URL沒有頁碼,以便像按鈕是文章的第一頁的文章。有時候頁碼也不存在。

我的URL看起來像這樣http://www.mydomain.com/23/My-Article-Title/2/

的2月末是表示文章的第2頁一頁的頁號出現這樣雖然

http://www.mydomain.com/23/My-Article-Title/

我怎麼解析在PHP中刪除頁面號碼,如果它存在?

所以我只想解析它,如果有一個頁碼。

回答

1
preg_replace('=\d+/$=', '', $url); 
+0

我敢肯定,所有給定會工作的答案,我不知道有足夠的瞭解正則表達式知道爲什麼人會比任何更好其他。但這個答案是最簡潔的,它似乎是做我正在尋找的東西。所以我將其標記爲答案。 – Early73

+0

@Early:如果你的URL是http:// www.mydomain.com/23/Review-Of-Rambo-8 /'? – webbiedave

+0

@webb'preg_replace('=/\ d +/$ =','/',$ url);' – powtac

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) /

0

嘗試使用:

preg_replace('/^(.+[a-zA-Z]\/)[\d]*\/?$/i', '\\1', $str); 
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>"; 
} 
?>