【问题标题】:Get images from a database into content also from a database将数据库中的图像也从数据库中获取到内容中
【发布时间】:2015-07-12 03:23:00
【问题描述】:

可怕的标题,但我不知道如何用不同的方式来描述它: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'];
}

【问题讨论】:

  • 能否发一下getImage(integer)的函数体?
  • @TimvanderLippe 我编辑了我的帖子
  • 你显示图片成功了吗
  • 你发布的div是$row['page_content']的赋值吗?
  • @TimvanderLippe 没有实际内容就像网页的完整 html,我发布的 div 只是我的图像如何添加到页面的示例

标签: php database image


【解决方案1】:

一种方法是使用特殊语法在页面文本中标记图像,然后在输出之前对其进行处理。例如,您可以将{{ing:n}} 插入内容中,以便稍后替换为指向第 n 个图像的链接。假设您选择了语法 &lt;?php echo getImage(n); ?&gt; :)(您绝对不应该这样做)。

那么通过如下函数传递的内容应该包含图片链接:

function insertImages($content)
{
    return preg_replace_callback('/<\?php echo getImage\(([0-9]+)\); \?>/', function($match) {
        return getImage($match[1]);
   }, $content);
}

【讨论】:

  • 谢谢分配 :) 如果我的做法是错误的,那么粘贴图像的正确方法是什么?
  • @Crecket 我不认为有任何单一的正确方法。通常当我将 html 存储在数据库中时,内容是由站点用户(管理员)而不是开发人员使用编辑器编辑的,在这种情况下,我使用一些标记语言,其中一些为附加图像提供自己的语法。
猜你喜欢
  • 2014-05-24
  • 2023-03-05
  • 2011-08-14
  • 1970-01-01
  • 1970-01-01
  • 2013-03-26
相关资源
最近更新 更多