企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 使用URL Nette \ Http \ Url类根据RFC 3986封装任何URL,并允许轻松操作它们的部分。 以下方案涵盖URL的各个部分: ~~~ scheme user password host port basePath relativeUrl | | | | | | | /--\ /--\ /------\ /-------\ /--\/--\/----------------------------\ http://john:x0y17575@nette.org:8042/en/manual.php?name=param#fragment \__________________________/\____________/^\________/^\______/ | | | | authority path query fragment ~~~ 用法是非常直观的: ~~~ use Nette\Http\Url; $url = new Url('http://nette.org/en/documentation?action=history#footer'); echo $url->absoluteUrl; // or directly echo $url; returns full URL echo $url->scheme; // http echo $url->authority; // nette.org echo $url->hostUrl; // http://nette.org echo $url->path; // /en/documentation echo $url->query; // action=history echo $url->fragment; // footer ~~~ 除了http URL方案之外,还可以使用其他方式,例如https,file或ftp。 URL的一部分当然可以更改。 ~~~ $url = new Url('http://nette.org/en/documentation?action=history#footer'); $url->path = '/'; $url->appendQuery('page=1'); echo $url; // http://nette.org/?action=history&page=1#footer ~~~ canonicalize()方法将URL转换为其规范形式。 ## Nette\Http\UrlScript UrlScript类是Url的后代。 它指示URL的哪个部分是当前运行脚本的路径。 它在Nette \ Http \ Request类中使用。 ~~~ http://nette.org/admin/script.php/pathinfo/?name=param#fragment \_______________/\________/ | | scriptPath pathInfo ~~~