可怕的头衔,但我不知道如何以不同的方式描述它:3
基本上,对于我们的学校项目,我们必须从数据库中获取所有页面内容。所以我已将内容输入数据库并创建了一个功能,将其粘贴到我的页面上。我遇到的问题是我也从不同的表中获得了一些图像。
我的页面是使用
输入的<?php echo $row['page_content']; ?>
因此,对于我以前做过类似事情的图像是在页面内:
<div class="col-md-4 col-sm-4 col-xs-height">
<a href="portfolio-item">
<img class="img-responsive img-portfolio img-hover" src="<?php echo getImage(6); ?>" alt="">
</a>
</div>
显然,回声中的回声并没有起作用,但我不知道如何解决这个问题。它不像我可以像在较小的文本片段中那样简单地对其进行分隔,例如:
echo "test text". $row['image'] . "moretext";
有没有办法做到这一点,或者我只需要输入图像的直接链接。我的意思是页面内容无论如何都在数据库中,但我更喜欢将它们放在一个单独的表中
编辑: 这些是我用来获取内容和图像的功能:
function getContents(){
$conn = new PDO('mysql:host='. DB_HOST .';dbname='. DB_NAME . ';', DB_USER, DB_PASS);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
if(isset($_GET['page'])){
$page = $_GET['page'];
}else{
$page = 1;
}
$sql = "SELECT * FROM pages WHERE page_ID = :page";
$sth = $conn->prepare($sql);
$sth->bindParam(':page', $page, PDO::PARAM_INT);
$sth->execute();
$row = $sth->fetch();
return $row;
}
function getImage($image){
$conn = new PDO('mysql:host='. DB_HOST .';dbname='. DB_NAME . ';', DB_USER, DB_PASS);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
$sql = "SELECT * FROM images WHERE image_ID = :image";
$sth = $conn->prepare($sql);
$sth->bindParam(':image', $image, PDO::PARAM_INT);
$sth->execute();
$row = $sth->fetch();
return $row['image_url'];
}
答案 0 :(得分:3)
一种方法是以某种方式用特殊语法在页面文本中标记图像,然后在输出之前处理它。例如,您可以将{{ing:n}}
插入到内容中,以便稍后用第n个图像的链接替换。我们假设你选择了语法<?php echo getImage(n); ?>
:)(你绝对不应该这样做)。
然后通过以下函数传递的内容应该包含图像链接:
function insertImages($content)
{
return preg_replace_callback('/<\?php echo getImage\(([0-9]+)\); \?>/', function($match) {
return getImage($match[1]);
}, $content);
}