如何将http协议添加到链接?

时间:2015-09-28 18:30:18

标签: php http yii

这应该是基础知识,但不知怎的,它让我望而却步。它一直工作正常,但由于某种原因,我的代码不再添加http协议...

我的$model->www包含www.some-page.no(纯文本)。

到目前为止,我一直按如下方式输出:

<a href="<?= $model->www; ?>> Click me </a>

预期输出应为http://www.some-page.no
但现在我得到了http://my-local-machine.com/page/a/http://www.some-page.no

如果我<a href="http://<?= $model->www; ?>> Click me </a>它可以正常工作。问题是,我不知道网址是否已包含http://

如果链接没有,可以使用Yii方式或PHP方式添加http协议吗?或者我是否必须自定义一个函数来检查字符串http://

该链接已正确清理。因此,不需要htmlspecialchars或类似的功能。

2 个答案:

答案 0 :(得分:3)

您可以使用parse_url

执行此操作
$url = 'www.google.be';
if (parse_url($url, PHP_URL_SCHEME) === null) $url = 'http://'.$url;

答案 1 :(得分:0)

只需使用str_replace

<a href="http://<?php str_replace('http://', '', $model->www); ?>" Click me</a>

更新:如果您还关注其他协议(请参阅DarkBee的评论):

<a href="http://<?php str_replace(array('http://', 'https://', 'ftp://'), '', $model->www); ?>" Click me</a>