2014-01-27 31 views
0

我有我的网页外部链接:Yii的追加基本URL HREF

<a target="_blank" rel="nofollow" href=<?php echo $r['url'] ;?>> 
               VISIT STORE 
               </a> 

当$ R [“网址”]有http://它显示了正确的外部链接,但是当它只有www或只是网站名称与域追加网页的网址。

Case 1 : url = http://google.com Works fine 
    Case 2: url = www.google.com  creates a link as: http://localhost/appname/controller/action/www.google.com 
+0

我也面临同样的问题。如果您找到了解决方案,请与我分享。 – Nuju

回答

0

试试这个:

<?php echo CHtml::link('Google', '//www.google.com', array('target'=>'_blank')) ?> 
+0

它创建的格式为http:// http的网址// google.com –

+0

我添加了空格,因为它将其转换为链接 –

+0

您可以按照以下方式使用它: 'echo CHtml :: link('Google', (strpos($ r ['url'],'www')=== 0)?'//'.$ r ['url']:$ r ['url'],array('target'=>' _blank'))' – Goodnickoff

1

Yii有没有任何关系您的问题。你不知道绝对和相对URL之间的区别。

在你的代码中,你不要在任何地方使用Yii。 Yii拥有非常强大的URL管理器,其方法有:createUrl,createAbsoluteUrl和其他。你不用这个。

您需要了解绝对和相对URL之间的差异,并且您的问题已消失。在internet和StackOverflow中也有更多信息:Absolute vs relative URLs

+0

您提供的链接不能解决我的问题。如果您接听,请张贴代码。 –

+0

请介意你说话的方式。我无法控制网址。它来自API。 –

0

希望你所有的URL都是外部的。然后检查您的网址为http:。如果url包含http,则直接使用,否则添加。

function is_valid_url($url) 
{ 
    if(strpos($url, "http://")!==false) 
     return $url; // correct 
    else return "http://$url";// http not found. 
} 

在你a标签

<a target="_blank" rel="nofollow" href=<?php echo is_valid_url($r['url']) ;?>> 
    VISIT STORE </a>