URL验证检测电影标题

时间:2012-06-23 11:58:00

标签: php regex

如何从网址中检测电影片名..

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

to:“ Dark Shadows ”或“ Dark-Shadows

我的代码是:

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

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

2 个答案:

答案 0 :(得分:1)

最后你的模式似乎出了问题。试试这个(注意最后几个字符):

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

您还需要添加一个组,以便更轻松地抓取标题部分。

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

最后,这是一个简化版本,如果开头的数字有一个或多于四个数字,或者如果标题有奇怪的字符(也许它不是英文电影),它不会破坏。

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

答案 1 :(得分: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加载标题。因此,即使您的网址损坏,您仍然可以加载正确的网页。