在代码中构建URL时,您可以使用字符串连接的方式收集所有字符串:
$url = $domain.'/index.php?option='.$option.'&view='.$view.'¶m1='.$value1;
对于短字符串,这种方法甚至很方便。但是,如果参数很多或需要在过程中进行标准化/清理,那么就不那么方便和直观了。例如,URL的一部分可能包含前导斜杠(URL片段开头处的斜杠),而请求的传入域名也可能以斜杠结尾,因此我们在中间某个位置得到一个带有双斜杠的错误URL……
为了标准化和统一URL检索任务,Joomla提供了JoomlaUriUri类。在Joomla 1.6及更早版本中,它被称为JUri。此类根据RFC3986标准处理URL,并负责解析URL的各个部分或从各个部分组装URL。
示例:从URL获取特定参数
use Joomla\Uri\Uri; $url = 'https://web-tolk.ru/dev/biblioteki?param=value'; $uri = new Uri($url); // 此处输出'value' echo $uri->getVar('param');
您可能会说,是的,有一个原生的PHP函数parse_url
……但是Uri类确保了对URL中UTF-8字符的安全操作,包括西里尔字母域名。为了避免自己编写各种检查,您可以使用Joomla核心功能。
如何在Joomla代码中构建所需的URL
这里也很简单:
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();
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社区资源
- https://www.php.cn/link/4e79e96ebb5671bdb50111f18f263003
- Mattermost上的Joomla社区聊天
- WebTolk Joomla扩展
- 这篇俄文文章
以上是Joomla 提示:使用 Joomla\Uri\Uri 类创建 URL。的详细内容。更多信息请关注PHP中文网其他相关文章!

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

PHP日志记录对于监视和调试Web应用程序以及捕获关键事件,错误和运行时行为至关重要。它为系统性能提供了宝贵的见解,有助于识别问题并支持更快的故障排除

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

记事本++7.3.1
好用且免费的代码编辑器

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境