这应该是基础知识,但不知怎的,它让我望而却步。它一直工作正常,但由于某种原因,我的代码不再添加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
或类似的功能。
答案 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>