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

to:「DarkShadows」または「Dark-Shadows

私のコードは:

$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\/?

最後に、最初の数字が1桁または4桁を超える場合、またはタイトルに奇妙な文字が含まれている場合(おそらく英語の映画ではない場合)に壊れない簡略化されたバージョンを次に示します。

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

DBからタイトルをロードします。したがって、URLが破損した場合でも、適切なページをロードできます。

于 2012-06-23T12:12:07.463 に答える