我想使用基本网址在内容中显示图片。所以我将以下文本存储在数据库中
<p>
<img src="<?php echo base_url; ?>images/abc.jpg" />
</p>
当我在页面上显示php标签未执行的内容时,它只显示<img src="<?php echo base_url; ?>images/abc.jpg" />
。请帮帮我。
答案 0 :(得分:2)
您需要在输出之前预处理您的页面。像这样:
在数据库中:
<p > <img src="{{BASEURL}}images/abc.jpg" /></p>
在php代码中:
$output = getOutput(); // Get your output string from database
$baseURLPattern = '{{BASEURL}}';
echo preg_replace('/' . preg_quote($baseURLPattern) . '/', $yourBaseURL, $output);
<强> [更新] 强>
简单的例子如下:
$output = '<p > <img src="{{BASEURL}}images/abc.jpg" /></p>';
$baseURLPattern = '{{BASEURL}}';
$yourBaseURL = 'http://www.example.com/';
echo preg_replace('/' . preg_quote($baseURLPattern) . '/', $yourBaseURL, $output);
答案 1 :(得分:1)
如果您使用的是codeigniter,请参阅配置文件。从那里设置base_url。 base_url()是一个函数,你的语法中缺少'()'
<img src="<?php echo base_url(); ?>/images/abc.jpg" />
答案 2 :(得分:0)
您不应该将整个代码块存储在数据库中。而是只存储文件名部分。例如,您的数据库可能有一个文件名列,其行包含:
abc.jpg
xyz.jpg
然后你的php渲染剩下的,就像这个
<?php
// Get your $row
?>
<p>
<img src="<?php echo $base_url; ?>images/<?php echo $row['filename']; ?>" />
</p>
<?php
// Continue with your code
?>
您可以将$row['filename']
中的'filename'更改为您的列名称。
答案 3 :(得分:0)
将数据存储在数据库中是行不通的,因为echo
不会评估php标记。
对于你想要做的事,有两种方式。
首先,存储图像URL,然后在PHP中输出它
echo '<img src="' . $base_url . $url_from_db . '"/>';
其次,在这个商店中也只是图片网址。并使用HTML BASE标记将URL设置为HTML页面上所有相对URL的BASE URL。像这样:
在你的元素中放这个
<base href="<?php echo $base_url ?>">
并使用以下图像输出
<p><img src="<?php echo $img_orl_from_db ?>" /></p>