首頁 >後端開發 >php教程 >Joomla 提示:使用 Joomla\Uri\Uri 類別建立 URL。

Joomla 提示:使用 Joomla\Uri\Uri 類別建立 URL。

Patricia Arquette
Patricia Arquette原創
2025-01-16 20:17:10337瀏覽

Joomla tip: Use the JoomlaUriUri class to create a URL.

在程式碼中建構URL時,您可以使用字串連接的方式收集所有字串:

<code class="language-php">$url = $domain.'/index.php?option='.$option.'&view='.$view.'&param1='.$value1;</code>

對於短字串,這種方法甚至很方便。但是,如果參數很多或需要在過程中進行標準化/清理,那麼就不那麼方便和直觀了。例如,URL的一部分可能包含前導斜杠(URL片段開頭處的斜杠),而請求的傳入域名也可能以斜杠結尾,因此我們在中間某個位置得到一個帶有雙斜杠的錯誤URL ……

為了標準化和統一URL檢索任務,Joomla提供了JoomlaUriUri類別。在Joomla 1.6及更早版本中,它被稱為JUri。此類別依據RFC3986標準處理URL,並負責解析URL的各個部分或從各個部分組裝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核心功能。

如何在Joomla程式碼中建構所需的URL

這裡也很簡單:

<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類別的層次結構設計使得getter方法位於AbstractUri類別中,而setter方法位於Uri類別中。可以在libraries/vendor/joomla/uri/src/Uri.php檔案中查看setter方法。可以在libraries/vendor/joomla/uri/src/AbstractUri.php檔案中查看getter方法。

如果您使用PHPStorm,那麼它完全了解Joomla,並會告訴您所需的一切。

您可以參考舊的文件頁面,該頁面在很大程度上仍然適用,並已針對命名空間的使用進行了調整。

Uri結構:

<code>     foo://example.com:8042/over/there?name=ferret#nose
     \_/   \______________/\_________/ \_________/ \__/
      |           |            |            |        |
   scheme     authority       path        query   fragment</code>

Joomla社區資源

以上是Joomla 提示:使用 Joomla\Uri\Uri 類別建立 URL。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn