我的视图中有一个循环,它输出从数据库收集的所有内容:
<?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;
答案 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; ?>