ホームページ >バックエンド開発 >PHPチュートリアル >thinkphp がルーティング ルールに従って URL を生成する方法
今回は、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 サイトの他の関連記事に注目してください。 推奨読書:
投稿はフォームデータを取得できません
以上がthinkphp がルーティング ルールに従って URL を生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。