ホームページ >バックエンド開発 >PHPチュートリアル >Joomla のヒント: Joomla\Uri\Uri クラスを使用して URL を作成します。
コードで URL を構築する場合、文字列の連結を使用してすべての文字列を収集できます。
<code class="language-php">$url = $domain.'/index.php?option='.$option.'&view='.$view.'¶m1='.$value1;</code>
このアプローチは、短い文字列にも便利です。ただし、パラメーターが多数ある場合や、プロセス内で標準化/クリーンアップする必要がある場合は、それほど便利で直感的ではありません。たとえば、URL の一部に先頭のスラッシュ (URL フラグメントの先頭のスラッシュ) が含まれている可能性があり、リクエストの受信ドメイン名もスラッシュで終わる可能性があるため、どこかに二重スラッシュが含まれる不正な URL が得られます。真ん中に……
URL 取得タスクを標準化および統合するために、Joomla は JoomlaUriUri クラスを提供します。 Joomla 1.6 以前では、Juri と呼ばれていました。このクラスは、RFC3986 標準に従って URL を処理し、URL のさまざまな部分から解析または組み立てを行います。
<code class="language-php">use Joomla\Uri\Uri; $url = 'https://web-tolk.ru/dev/biblioteki?param=value'; $uri = new Uri($url); // 此处输出'value' echo $uri->getVar('param');</code>
「はい、ネイティブ PHP 関数 parse_url
はあります...」と思われるかもしれませんが、Uri クラスは、キリル文字ドメイン名を含む URL 内の UTF-8 文字に対する安全な操作を保証します。さまざまなチェックを自分で作成することを避けるために、Joomla のコア機能を使用できます。
ここでも非常に簡単です:
<code class="language-php">use Joomla\Uri\Uri; $uri = new Uri; $uri->setHost('web-tolk.ru'); $uri->setScheme('https'); // setPath()以前导斜杠开头 $uri->setPath('/dev/biblioteki'); // GET参数可以作为数组传递 $vars = [ 'param1' => 'value1', 'param2' => 'value2', 'param3' => 'value3', ]; $uri->setQuery($vars); // 将URL作为字符串输出 echo $uri->toString();</code>
Joomla の Uri クラスの階層構造は、AbstractUri クラスに getter メソッドが配置され、Uri クラスに setter メソッドが配置されるように設計されています。 setter メソッドは、libraries/vendor/joomla/uri/src/Uri.php ファイルで確認できます。 getter メソッドは、libraries/vendor/joomla/uri/src/AbstractUri.php ファイルで確認できます。
PHPStorm を使用すると、PHPStorm は Joomla を完全に理解し、必要なことをすべて教えてくれます。
古いドキュメント ページを参照できます。このページは現在でも大部分が適用可能であり、名前空間の使用に合わせて調整されています。
URI 構造:
<code> foo://example.com:8042/over/there?name=ferret#nose \_/ \______________/\_________/ \_________/ \__/ | | | | | scheme authority path query fragment</code>
以上がJoomla のヒント: Joomla\Uri\Uri クラスを使用して URL を作成します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。