Url 助手类(Url Helper)

如果没有传任何参数,这个方法将会生成相对 URL 。你可以传 true 来获得一个针对当前协议的绝对 URL; 或者,你可以明确的指定具体的协议类型( https , http )。
Url::base()Url::home() 的完全一样。

$relativeHomeUrl = Url::home();
$absoluteHomeUrl = Url::home(true);
$httpsAbsoluteHomeUrl = Url::home('https');
$relativeBaseUrl = Url::base();
$absoluteBaseUrl = Url::base(true);
$httpsAbsoluteBaseUrl = Url::base('https');
// echo结果如下:
//        relativeHomeUrl:/
//        absoluteHomeUrl:http://web.test.com/
//        httpsAbsoluteHomeUrl:https://web.test.com/
//        relativeBaseUrl:
//        absoluteBaseUrl:http://web.test.com
//        httpsAbsoluteBaseUrl:https://web.test.com

# 记住用给定名称指定的 URL
Url::remember(['product/view', 'id' => 42], 'product');
$productUrl = Url::previous('product');
//echo $productUrl ;
# 从2.0.3版本开始,你可以使用 yii\helpers\Url::current() 来创建一个基于当前请求路由和 GET 参数的 URL。 你可以通过传递一个 $params 给这个方法来添加或者删除 GET 参数。 例如:
// /index.php?r=post/view&id=123&src=google
echo Url::current();
// /index.php?r=post/view&id=123
echo Url::current(['src' => null]);
// /index.php?r=post/view&id=100&src=google
echo Url::current(['id' => 100]);
#你可以用如下代码检测一个 URL 是否是相对的(比如,包含主机信息部分)
$isRelative = Url::isRelative('user/test');

Url::to() 的第一个参数可以是:
数组:将会调用 toRoute() 来生成URL。比如: ['site/index'], ['post/index', 'page' => 2] 。 详细用法请参考 toRoute() 。
1、带前导 @ 的字符串:它将会被当做别名, 对应的别名字符串将会返回。
2、空的字符串:当前请求的 URL 将会被返回;
3、普通的字符串:返回本身。
$scheme 指定了(无论是字符串还是 true ),一个带主机信息(通过yii\web\UrlManager::$hostInfo获得) 的绝对 URL 将会被返回。如果 $url 已经是绝对 URL 了, 它的协议信息将会被替换为指定的( https 或者 http )。

// /site/index
echo Url::to(['site/index']);
// /site/index&src=ref1#name
echo Url::to(['site/index', 'src' => 'ref1', '#' => 'name']);
// /post/edit&id=100     假设别名 "@postEdit" 被定义为 "post/edit"
echo Url::to(['@postEdit', 'id' => 100]);
// 当前请求的 URL http://web.test.com
echo Url::to();
//  /images/logo.gif
echo Url::to('@web/images/logo.gif');
// images/logo.gif
echo Url::to('images/logo.gif');
// http://web.test.com/images/logo.gif
echo Url::to('@web/images/logo.gif', true);
// https://web.test.com/images/logo.gif
echo Url::to('@web/images/logo.gif', 'https');

一个路由既可能是绝对的又可能是相对的。一个绝对的路由以前导斜杠开头(如: /site/index), 而一个相对的路由则没有(比如: site/index 或者 index)。一个相对的路由将会按照如下规则转换为绝对路由:
1、如果这个路由是一个空的字符串,将会使用当前 route 作为路由;
2、如果这个路由不带任何斜杠(比如 index ),它会被认为是当前控制器的一个 action ID, 然后将会把 yii\web\Controller::$uniqueId 插入到路由前面。
3、如果这个路由不带前导斜杠(比如: site/index ),它会被认为是相对当前模块(module)的路由, 然后将会把 uniqueId 插入到路由前面。
从2.0.2版本开始,你可以用 alias 来指定一个路由。 在这种情况下, alias 将会首先转换为实际的路由, 然后会按照上述规则转换为绝对路由。

// /site/index
echo Url::toRoute('site/index');
// /site/index&src=ref1#name
echo Url::toRoute(['site/index', 'src' => 'ref1', '#' => 'name']);
// /post/edit&id=100     假设别名 "@postEdit" 被定义为 "post/edit"
echo Url::toRoute(['@postEdit', 'id' => 100]);
// http://web.test.com/site/index
echo Url::toRoute('site/index', true);
// https://web.test.com/site/index
echo Url::toRoute('site/index', 'https');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
URLHelper是一个用于处理URL的辅助工具,它可以帮助我们方便地进行网页抓取和数据提取。下面是一个简单的URLHelper抓取教程。 第一步,安装URLHelper库。可以通过pip或conda安装URLHelper库,例如使用pip安装的命令为:pip install urlhelper。 第二步,导入URLHelper库。在使用URLHelper之前,需要先在项目中导入该库,可以使用import语句导入URLHelper库,例如:import urlhelper。 第三步,创建URLHelper实例。在使用URLHelper之前,需要创建一个URLHelper的实例,用于进行URL的处理和数据的提取。可以使用URLHelper的构造函数创建实例,例如:helper = urlhelper.URLHelper()。 第四步,设置URL和参数。在使用URLHelper获取网页内容之前,需要设置URL和参数。可以使用set_url和set_params方法设置URL和参数,例如:helper.set_url("http://www.example.com") 和helper.set_params({"page": 1, "limit": 10})。 第五步,发送请求并获取响应。使用send_request方法发送请求并获取响应内容,例如:response = helper.send_request()。 第六步,解析网页内容。可以使用parse_response方法解析网页内容,例如:parsed_data = helper.parse_response(response)。 第七步,提取所需数据。根据网页的结构和需要提取的数据,可以使用XPath、CSS选择器或正则表达式等方法提取所需数据,例如:title = parsed_data.xpath('//h1/text()')。 第八步,处理提取的数据。根据需求,可以对提取的数据进行处理和存储,例如打印在控制台上或将数据存储到数据库中。 通过以上步骤,我们可以使用URLHelper方便地进行网页抓取和数据提取。当然,在实际应用中还需要根据具体情况进行处理和调试,但这个简单教程可以作为URLHelper入门的指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值