首页 > 后端开发 > php教程 > Joomla 提示:使用 Joomla\Uri\Uri 类创建 URL。

Joomla 提示:使用 Joomla\Uri\Uri 类创建 URL。

Patricia Arquette
发布: 2025-01-16 20:17:10
原创
329 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板