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"]);
4

2 回答 2

1

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

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

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

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

最后,这里有一个简化的版本,如果开头的数字有一位或多于四位,或者标题有奇怪的字符(可能不是英文电影),它不会中断。

\/\d+-(.+)\.aspx$/
于 2012-06-23T12:56:23.457 回答
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);

并从数据库加载标题。因此,即使您的 URL 被损坏,您仍然可以加载正确的页面。

于 2012-06-23T12:12:07.463 回答