ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 生成url ### 方法生成 可以对路由进行映射生成 该方法首先会在路由规则里面寻找是否有符合规则的 如果没有符合那么它将直接调用u方法生成url ~~~ Url::build();进行url的生成 /** * 生成url * @param [type] $expression [地址表达式] * @param string $params [参数] * @param string $ext [后缀] * @param string $domain [域名] * @return [type] [description] */ public function build($expression, $params = '', $ext = '', $domain = '') ~~~ 地址表达式会使用`parse_url`进行解析,所有可以在表达式上面加上域名参数锚点 例如: ~~~ Url::build('http://www.puaok.com/index/index/index', ['aid'=>3,'page'=>2], '.html') ~~~ 生成结果 ~~~ http://www.puaok.com/hepps/public/en/index/index/index/aid/3/page/2.html ~~~ 如果在地址表达式中带域名必须要加`http://`或者`https://` #### 入口文件 在不是伪静态的情况下需要在地址上面加有入口文件,默认的入口文件是`__ROOT__.index.php` 如需要修改可以使用root方法 ~~~ Url::root(__ROOT__.'other.php') ~~~ ### u函数生成 u函数生成不依赖与路由规则,仅仅会根据当前的配置的规则进行生成,使用方法和`build`方法一样,不过在最后面多了一个参数,默认入口文件是`__ROOT__.index.php`,可以在最后一个参数上面加上入口文件 ~~~ /** * 生成url * @param [type] $expression [地址表达式] * @param array $params [参数] * @param string $ext [后缀名称] * @param [type] $domain [域名] * @param [type] $root [入口文件] * @return [type] [description] */ function u($expression, $params = [], $ext = '', $domain = '', $root = __ROOT__ . 'index.php') ~~~ ### 快速创建url 一般情况下我们对url方法调用非常的频繁,因为如果是文章列表之类的,如果使用u函数或者build方法生成会有很大的效率问题。 在url类型一样仅仅参数不一致时使用次方法可获得效率提升 #### 创建url 调用`Url::create()`方法创建一个url对象 参数: ~~~ [ 必填 pathinfo模式或者兼容模式下的url地址 'pathinfoMode'=>'', 必填普通模式下的url地址 'normalMode'=> '', 选填 url后缀 如果是bool值则获取配置项的后缀,如果是字符串就使用该参数,否则后缀为空 'ext'=>true, 选填根路径默认为__ROOT__.'index.php' 'root'=>'', 选填 域名 http:://www.puaok.com 或者www.puaok.com 'domain'=>'' ] ~~~ 示例: ~~~ $urlObj = Url::create([ 'pathinfoMode'=>'thread-{aid}-{page}', 'normalMode'=>ltrim(strstr(u('index/index/index', ['aid'=>'{aid}','page'=>'{page}']), '?'), '?'), 'ext'=>'.html', 'domain'=>'localhost']); ~~~ 该方法返回一个对象 url参数使用占位符{}进行占位 #### 生成url 在使用create获取的对象可以直接调用 调用时可以传入参数 ~~~ /** * 生成url * @param array $params [通过使用create方法调用] * @return [type] [description] */ public function __invoke(array $params = []) ~~~ 示例: ~~~ $urlObj(['aid'=>3,'page'=>1]); 结果:http://localhost/hepps/public/thread-3-1.html ~~~