在PHP标记内使用site_url()回显图像标记

时间:2016-09-08 13:06:01

标签: php html

我的视图中有一个循环,它输出从数据库收集的所有内容:

<?php foreach($content as $contentRow): ?>
     <?php
          echo $contentRow->value; 
     ?>  
<?php endforeach; ?>

这适用于HTML字符串,如:

<h2><strong>Example Text</strong></h2>

但是我有一些我想要显示的图像内容,我尝试了以下数据库条目无济于事:

<img src="<?php echo site_url('pathToImage/Image.png'); ?>" alt="Cover">"
<img src="site_url('pathToImage/Image.png')" alt="Cover\">"

我觉得我错过了如何以这种方式使用PHP值的步骤。

如何访问图片的网址并使用它来显示图片?

完整代码编辑

<?php
    $CI =& get_instance();
?>

<div class="container">

    <div class="row">        
        <div class="col-md-9">
            <div class="col-md-2"></div>
            <div class="col-md-20">
                <!--<form class="form-center" method="post" action="<?php echo site_url(''); ?>" role="form">-->
<!--                    <h2 class="">Title</h2>
                    <h2 class=""SubTitle/h2>-->
                    <?php echo $this->session->userdata('someValue'); ?>

                    <!--//<table class="" id="">-->

                        <?php foreach($content as $contentRow): ?>
                        <tr>
                            <td><?php
                            echo $contentRow->value; 
                            ?></td>                            
                        </tr>
                        <?php endforeach; ?>
                    <!--</table>-->

                <!--</form>-->
            </div>

            <div class="col-md-2"></div>

        </div>
    </div>

</div><!-- /.container -->

正在$contentRow->value;

中读取值

2 个答案:

答案 0 :(得分:5)

我必须验证这一点,但对我来说,看起来你正在回应一个带有PHP函数的字符串。函数site_url()未执行,只是显示。您可以通过运行eval()函数来执行它。但我必须添加此功能可能非常危险,不建议使用它。

<强>更新 总结一些评论:不鼓励使用eval()!您应该重新考虑/重新考虑您的设计。也许使用被HTML替换的标签是一种解决方案(感谢Manfred Radlwimmer)。始终牢记永远不要相信您显示的数据,始终过滤和检查!

答案 1 :(得分:0)

我不会接受这个答案,因为@Philipp Palmtag的回答帮助了我更多,这是更多的补充信息。

因为我正在从数据库中读取数据,所以留下一些关于存储内容的信息似乎是一个明智的地方。在存储内容的同一个表中,我添加了“内容类型”字段。

在我看来,我可以阅读此内容类型并适当呈现所存储的内容。如果它只是文本我可以将其保留为HTML标记,我需要做的所有图像都是指定文件路径,然后我可以根据需要进行扩展。

我已将我的观点更新为类似于此的内容,如果需要,可以在以后添加if / else语句:

<?php foreach($content as $contentRow): ?>
   <?php if ($contentRow->type != "image"): ?>
      <?php echo $contentRow->value; ?>    
   <?php else: ?>
      <?php echo "<img src=\"".site_url($contentRow->value)."\">"; ?>
   <?php endif; ?>   
<?php endforeach; ?>