2012-06-23 55 views
0

我怎麼可以檢測從網址電影冠軍。URL驗證檢測電影標題

http://www.mysite.com/2430-Moonrise-Kingdom.aspx 
http://www.mysite.com/2405-Dark-Shadows.aspx 
http://www.mysite.com/2415-Madagascar-3-Europes-Most-Wanted.aspx 

我需要從UTL轉換:

http://www.mysite.com/2405-Dark-Shadows.aspx 

到: 「黑暗陰影」 或「暗影

我的代碼是:

$regexUrl = "/\/[0-9]{2,4}\-[a-zA-Z0-9\-\.]+\.aspx\/?"; 

echo preg_match($regexUrl, $_SERVER["REQUEST_URI"]); 
+1

你的代碼有點樂觀。誰設置了'$ movie_title'以及如何? – Jon

+0

對不起,我要修復它,等待... – Abudayah

+0

好的修復謝謝 – Abudayah

回答

0
$url = 'http://www.mysite.com/2415-Madagascar-3-Europes-Most-Wanted.aspx'; 

$url = basename($url, '.aspx'); 
$url = substr($url, 1+strpos($url, '-')); 
$url = strtr($url, '-', ' '); 

echo $url; 

但是,如果這是你的網站,你倒是應該這樣做:

$id = (int)basename($url); 

並加載從DB稱號。所以即使你的URL被破壞,你仍然可以加載適當的頁面。

+0

我縮短了一行代碼,第一:parse_url(...)是不需要的。 – Tom

1

最後你的模式似乎出了問題。試試這個(注意最後幾個字符):

/\/[0-9]{2,4}\-[a-zA-Z0-9\-\.]+\.aspx/ 

你還需要,以便更容易抓住這是標題部分添加組。

/\/[0-9]{2,4}\-([a-zA-Z0-9\-\.]+)\.aspx\/? 

最後,這裏是如果在一開始的號碼有一個或多個四位數字,或者如果標題有奇怪的字符(也許它不是一個英語電影),不會打破的簡化版本。

\/\d+-(.+)\.aspx$/