href链接中来自数据库的数据会回显网站网址

时间:2019-02-12 18:03:21

标签: php codeigniter

我在codeigniter中使用了foreach循环,试图在href html标签中显示数据库中的网站链接,但是它回显了siteurl而不是链接到网站链接。

<?php foreach ($as as $a): {


<li>

<strong>Web</strong>

 <a href="<?php echo $a['website']; ?>" target="_blank" rel="nowfollow"><? 
 php echo $a['website']; ?></a></div>

   </li>

<?php }endforeach; ?>

例如www.instagram.com在数据库中,它将类似于此链接     localhost/site/view/www.instagram.com/p/BgHH1TyDqvp/不仅仅是链接www.instagram.com

1 个答案:

答案 0 :(得分:0)

我注意到,如果协议(http或https)不在外部链接的最前面,则它将作为相对路径来处理。如果我知道数据库中有外部链接的机会,我将检查协议并在需要时添加它。

更新代码

<?php foreach($as as $a) :
    // Check if we have the protocol
    $pro = (substr($a['website'], 0, 4) != 'http' ? 'https://' : '');        
    ?>
    <li>
        <strong>Web</strong>
        <a href="<?= $pro . $a['website'] ?>" target="_blank" rel="nofollow">
            <?= $a['website'] ?>
        </a>
    </li>
<?php endforeach; ?>

这是基于内存的,尚未测试此特定代码块。

我不认为这是处理此问题的最佳方法,但过去为我工作过。