我在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
答案 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; ?>
这是基于内存的,尚未测试此特定代码块。
我不认为这是处理此问题的最佳方法,但过去为我工作过。