0

これらの URL を SEO フレンドリーな URL に変換したい:

index.php?t=1&s=1&offset=50&hits=50   --->  index-t-1-s-1-offset-50-hits-50.html
index.php?t=1&s=1                     --->  index-t-1-s-1.html
index.php?t=1&s=&offset=50&hits=50    --->  index-t-1-s-1-offset-50-hits-50.html
index.php?t=1                         --->  index-t-1.html

私はこれを書いた:

$filename = substr(basename($base_href),0,'-4');
$str = preg_replace('/href=\'\?t=(\d+)&s=(\d+)\'/i', 'href=\''.$filename.'-t-$1-s-$2.html\'', $str);

しかし、私には普遍的な表現が必要です。

4

2 に答える 2

1

.php??私はそれはオプションだと思います)用語とすべての記号をに置き換えて、最後-に追加.htmlしたことに注意しました。だから、あなたはそれをする必要があります:

$filename = "index.php?t=1&s=1&offset=50&hits=50";
$result = preg_replace('/(?:\.php\??|\W)/', '-', $filename) . '.html';
//~> index-t-1-s-1-offset-50-hits-50.html

それはします:

  • .php?または.phpに置き換え-ます;
  • not-letters \W(と混同しないでください\w)を-;に置き換えます。
  • .html結果に追加

正規表現について詳しくは、こちらをご覧ください

于 2012-06-30T04:27:42.107 に答える
0

解決策として、最初にURLをで分割し、次にすべてとをで?置き換え、文字列を連結して戻します( URLの他の部分で削除するように処理した後)&=-.php

于 2012-06-30T04:25:10.407 に答える