thinkphp がルーティング ルールに従って URL を生成する方法

php中世界最好的语言
リリース: 2023-03-22 09:00:01
オリジナル
1862 人が閲覧しました

今回は、thinkphp が routing ルールに従って URL を生成する方法を説明します。thinkphp がルーティング ルールに従って URL を生成する際に注意すべき点 は何ですか? ここで実際のケースを見てみましょう。

以下に示すように:

//更改模块配置文件
'URL_ROUTER_ON'   => true, 
'URL_ROUTE_RULES'=>[]//编写路由优化
ログイン後にコピー
tpルーティングをオンにした後、U メソッドを使用すると、ルーティング ルールに従って URL が生成されません。通常、テンプレートを手動で変更し、内部の U メソッドを削除する必要があります。リンクを手動で変更する プログラムがすでに書かれていて、後からルーティングを追加する場合、リンクを変更するのは面倒なので、今日は退屈なので、ルーティングルールに従って URL を生成できるように U メソッドを変更しました。したがって、テンプレートを 1 つずつ変更する必要はありません。

/ThinkPHP/Common/functions.php ファイルに次のコードを追加し、直接

U メソッドで

if($suffix) を検索し、先頭に次のコードを追加します。 u メソッドによって生成される URL が生成されます。ルーティングルールに従ってください!

if(C('URL_ROUTE_RULES')){
 foreach (C('URL_ROUTE_RULES') as $rule=>$real) {
  if(strpos($url, $real)!==false){
   $url = str_replace($real, $rule, $url);
   preg_match("/\/(\w+)\.php\/(\w+)/", $url, $match);
   if(isset($match[1]) && isset($match[2]) && $match[1][0]==$match[2][0]){
    $url = preg_replace("/\/(\w+)\.php/", '', $url);
   }elseif(strpos($url, 'index.php')!==false){
    $url = str_replace("/index.php", '', $url);
   }else{
    $url = str_replace(".php", '', $url);
   }
   preg_match_all("/(:\w+)/", $rule, $matches);
   foreach ((array)$matches[1] as $match) {
    $url = str_replace($match . '/', '', $url);
    $url = str_replace(substr($match, 1) . '/', '', $url);
   }
  } 
 } 
}
ログイン後にコピー
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 推奨読書:

投稿はフォームデータを取得できません


QRコード画像の強制ダウンロード


PHPでフォーマットファイルを操作する方法

以上がthinkphp がルーティング ルールに従って URL を生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート