我有一些代码可以将变量中的所有空格更改为破折号
function url($string) {
//lower case everything
$string = strtolower($string);
//make alphaunermic
$string = trim($string);
//Clean multiple dashes or whitespaces
$string = preg_replace("/[\s-]+/", " ", $string);
//Convert whitespaces and underscore to dash
$string = preg_replace("/[\s_]/", "-", $string);
return $string;
}
//some artist now becomes some-artist, some song now becomes some-song
然后我有一个规则
RewriteRule ^mp3/(.*)-(.*)/?.html$ mp3.php?artist=$1&song=$2 [nc]
所以我可以有像这样的网址
www.example.com/mp3/some-artist-some-song.html
但它混淆了艺术家与歌曲分开的地方,如果我在该页面上呼应艺术家,当实际艺术家变量只是“some-artist”时,它会给我“some-artist-some”,它似乎是认为第一个变量是最后一个破折号之前的所有内容,如果不是,我该如何解决?