用图像替换MySQL文本字段中的标记

时间:2011-08-05 04:32:29

标签: php mysql blogs

全新的PHP和MySQL,并一直试图找出如何用正确的图像替换博客文章字段中的标记(即[image:1])。我现在有能力(感谢正确方向的一些指针)用正确的帖子放置正确的图片,但我想根据我把标签放在帖子本身的位置将它们放到文本中。例如,现在我可以在回显$ row ['post']本身之前回显图片,但我无法弄清楚如何编写php来实际查看$ row ['post'],找到[image:1],用那个id回显图片,然后继续回显帖子的其余部分。这有意义吗?

2 个答案:

答案 0 :(得分:0)

如果您在变量$image_tag中包含图片代码,并且您的帖子正文包含在$row['post']中,那么您的逻辑应该类似于:

 $body_text = str_replace ( "[image:1]", $image_tag, $row['post']);
 echo $body_text;

所以基本上,不是首先转储图像然后是正文文本,而是先将图像占位符替换为相应的图像标记,然后再将其写出来。

答案 1 :(得分:0)

如果你的“标签”是一个已知的字符串并且永远不会改变,那么PHP的str_replace() function可能就足够你了:

$output = str_replace( "[input:1]", $replacement_string, $original_string);

如果你的标记字符串有所不同 - 比如你想要[image:1]而且[image:anything-else],那么你可能会发现preg_replace()是一个更有用的功能。 preg_replace()允许您使用更高级的模式匹配(正则表达式)替换字符串:

$output = preg_replace( "/\[input:(.+)\]/", '<img src="image_number_$1">', $original_string);

在此示例中,替换字符串包含对原始标记中图像编号的引用 - 即(.+)映射到$1

正则表达式本身就是一个完整的讨论,所以如果你对它不太了解,我建议阅读 - 它非常强大,但可能非常神秘(上面是一个相对简单的例子!)。

希望有所帮助。