ホームページ  >  記事  >  バックエンド開発  >  thinkphpのUメソッドを使用してルーティングルールに従ってURLを生成する手順の詳細な説明

thinkphpのUメソッドを使用してルーティングルールに従ってURLを生成する手順の詳細な説明

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-18 13:52:361606ブラウズ

今回は、thinkphpのUメソッドを使用してルーティングルールに基づいてURLを生成する手順について詳しく説明します。thinkphpのUメソッドを使用して生成する際に注意すべき注意事項とは何ですか。ルーティング ルールに基づく URL ここで実際のケースを見てみましょう。以下に示すように

:

//更改模块配置文件
'URL_ROUTER_ON'   => true, 
'URL_ROUTE_RULES'=>[]//编写路由优化

tp ルーティングをオンにした後、U メソッドを使用すると、ルーティング ルールに従って URL が生成されません。通常、テンプレートを手動で変更し、テンプレート内の U メソッドを削除する必要があります。 , プログラムがすでに書かれていて後からルーティングを追加する場合、リンクを修正するのは面倒なので、今日は退屈して、U メソッドをそれに応じて URL を生成できるように修正しました。ルーティング ルールを 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 サイトの他の関連記事に注目してください。

推奨読書:

phpで配列を連続数値インデックスにリセットする方法


phpで配列をマージし、キー値を保持する方法は何ですか?

以上がthinkphpのUメソッドを使用してルーティングルールに従ってURLを生成する手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。