Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php href link echos站点url中数据库中的数据_Php_Codeigniter - Fatal编程技术网

Php href link echos站点url中数据库中的数据

Php href link echos站点url中数据库中的数据,php,codeigniter,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"><? p

使用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/
我注意到,如果协议(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; ?>

  • Web
  • 这是基于内存的,没有测试这个特定的代码块


    我并不认为这是处理这个问题的最佳方式,但在过去对我很有效。

    是的,你的PHP语法完全错误。噢,哇,谢谢你的有用评论。这就解决了问题。在这里,这也是MVC而不是普通的php,所以我希望我的语法看起来不正确。也许你错过了最高层的那部分。是的,不管怎样,这仍然是错误的。您不能让foreach开始转储普通HTML。用回音标签把它包起来。另外,在声明foreach之后,不应该有一个
    。即使回显html标记并连接变量,url仍然会继续使用站点url作为第一个本地主机/站点/视图的链接。无论如何,谢谢。谢谢你,我仍然在使用MVC环境,通过在数据库链接前面对接https://解决了这个问题。尚未尝试您的代码,但谢谢。