带图片的博客文章


Blog Post with Pictures?

为了学习更多关于php和mysql的知识,我已经阅读了许多关于构建一个简单博客站点的教程和帖子。我有一个数据库,其中包含必要的、常见的疑点(ID、标题、作者、日期和帖子)。在我的php中,我查询数据库,将所有嫌疑人加载到面包车中,然后在我需要它们的时间和地点回声每个人-工作得非常出色。

现在我想更进一步。我想有能力添加一些图像的博客文章,现在,只是输入到数据库的文本表。我该如何建造这样的东西呢?我一直在到处寻找一些提示-基本上谷歌"MySQL PHP博客插入图像到帖子"的每一个组合,我能想到的。有很多不同的软件选择,但我想了解如何从头开始构建它-没有Wordpress, Blogger等。

我不是想让用户上传图片。我只是想在实际的帖子中包含图像,以便当我查询数据库加载各种phpdiv(标题,作者,日期和帖子)的帖子将包括我想要显示的任何图片。(即。"这是我一直在使用的一些示例文本和一张图片"(图片)"正如你所看到的,上面的图片是我在实际博客文章中放置的一个例子"。

我如何得到mysql查询加载帖子,并在适当的地方添加图片?这不是关于将图像上传到服务器或数据库。这只是关于阅读帖子的文本,并在适当的位置包含该帖子的图像。我不希望用户能够上传任何东西,我只希望php页面输出标题、作者、日期和帖子(包括图片)。

需要考虑的几点:

  • 您希望用户通过网站上的表单上传图像,还是您将是唯一的用户,并通过FTP上传?
  • 用户是要在文本编辑器中输入html来显示图片,还是要解析出某种简单的标记语言(如[img="path/to/image.jpg"])
  • 数据库对于你想要完成的事情是必要的吗?

如果你的目标是学习更多关于PHP, MySQL和处理图像的知识,也许像支持多个相册的图片库这样的东西可能是学习你想要学习的东西的更直接的方法。在这里可以找到我所谈论的一个例子(披露:这个链接到我正在为我妻子的摄影业务建立的网站,但这是相关的)。

希望这对你有帮助!

::编辑::根据你的问题的更新和对我的回答的评论,我将向你推荐两种可能的解决方案:

简单的解决方案:在你的帖子中写一些HTML来引用你上传的照片。标签很简单,甚至像wordpress这样的博客也允许你这样做(所以这不是逃避):)

教育解决方案:在每篇文章中,允许一些类型的标记表明图像需要在哪里(例如[img]1[/img]…[img]2[/img]…(更多内容),并在数据库中将每个照片ID链接到每个帖子ID,以及您希望照片在帖子中填充的位置。为清楚起见,可能是:

Table photo_in_post:
----------------------------------
|img_id  | post_id | img_position|
|--------|---------|-------------|
| 17     |  4      |  1          |
|--------|---------|-------------|
| 3      |  4      |  2          |
|--------|---------|-------------|
| 4      |  2      |  1          |
|--------|---------|-------------|

抓取文章文本后,也许您可以运行如下查询:

select * from photo_in_post join img on img.id = photo_in_post.img_id where photo_in_post.post_id = 4 order by photo_in_post.img_position;

,然后循环遍历您的文章,用基于与标记内img_position对应的数据库结果生成的图像标记替换每次出现的[img]NUMBER[/img]。或者,您甚至可以循环遍历数据库结果并执行以下操作:

str_replace("[img]".$row['img_position']."[/img]", "Generated image tag", $postContents);

这可能足够让你开始了。

这是我在大学里挣扎的东西,因为它不像我想象的那样工作,如果不写出整个代码(并节省你所有的尝试和错误的乐趣),基本上你想在数据库中有一个表,包含图像名称,并有一个对post ID的引用,这样你就可以将两者链接在一起在你的输出屏幕上。

现在有两个主要的问题,每个人一开始都会遇到,希望它们能帮你节省几个小时的头痛:

首先确保你的表单enctype设置为multipart/form-data。

<form enctype="multipart/form-data"></form>

其次,当你正在处理上传的内容时,它存储在$_FILES超全局数组中,而不是$_POST。

我只是做了一个快速的谷歌,并从Tizag中提取了第一个结果,给出了php文件上传的基本概述。它不是最好的,但肯定涵盖了基本的。

http://www.tizag.com/phpT/fileupload.php

遵循本教程,您应该能够将图像放到服务器上(如果设置了允许这样做的权限)。

我已经考虑了一段时间之前,在我看来,有一个简单的解决方案,但它是固定的。在我看来,你的图片必须固定在文本内。在每个博客中,"第一张"图片必须在它自己的位置,然后"第二张"图片必须在它自己的位置……等。等。

我是什么意思?当你建立一个上传图片的表单时,建立它,第一张图片将被命名为"image1",第二张"image2"或这么长…但是名称必须是固定的,这样您才能正确地编写html代码。然后,当你写博客和选择图片上传时,当你按下提交按钮时,你的php脚本必须在你的网站上建立适当的文件夹,然后在该文件夹中上传图片。

当你写你的html,然后你张贴你的图片的地方,一个地方"调用"image1从特定文件夹,第二个地方"调用"image2从特定文件夹等等…在该博客的MySQL表中,除了id,标题,日期,时间和博客的内容,还必须有列名文件夹,您将使用php代码调用并放置在HTML中。

你能理解我吗?对不起,如果我的英语语法不正确或某些单词也。

那是我的观点。

我之前和之后都考虑过这个问题——这是唯一看起来最简单和最灵活的方法。

首先让我解释一些功能,然后再深入讨论

我的网站(www.nathannoye.com)有一个博客部分。在管理面板-有一种方法来上传一个单一的图像的文章标题图像,但我是在同一条船上,你想在我的博客文章中发布图像以及。看到我可以每次上传一个图片(并且已经在其他地方有多个图片上传工作)-为什么不专门上传资产并使用DB引用在两者之间进行调解。

这就是我的解决方案,我将在我的网站重新设计中实现:

  1. 创建一个部分来上传图像资源
  2. 允许在本节中上传多个图像,将它们上传到一个文件夹,并在数据库中保存新的文件名和位置。(也许甚至可以创建一个小分辨率和全分辨率的图像压缩脚本)
  3. 当创建一个博客-有一个按钮,我可以点击,将添加HTML标记,无论在哪里卡拉是在我的文本区与空src标签。
  4. 这将导致一个模态出现,所有的图像缩略图都显示在模态中,并且在模态中有一个小预览,所以当我点击它时-我可以确保它是正确的
  5. 点击"确定"将添加图像引用到博客文章,这样当用户请求博客文章时,它将在浏览器中显示为正常图像。

遵循这个策略-我可以在我的网站上重复使用这些图像,而不用担心这些图像是否会被粘在那篇博客文章上。

不确定这是不是最好的方法,但因为我将是唯一一个使用它的人-我真的不在乎

希望这对你有帮助!