【问题标题】:Converting [img=URL] to html tags将 [img=URL] 转换为 html 标签
【发布时间】:2014-08-26 22:46:09
【问题描述】:

制作一个基本用户提交的 CMS,论坛使用各种不同的图像代码。

到目前为止,我使用了以下内容:

$text = str_ireplace("[IMG]", "<img class='buildimage' src='", "$text");
$text = str_ireplace("[/IMG]", "'>", "$text");

这适用于 [img]URL[/img] 的普通 BBCode 图片标签

但想不出改变的方法,例如使用 PHP:

[img=http://img.photobucket.com/albums/v479/D2BBA/p3.jpg]

到一个普通的 HTML 图像标签。有什么帮助吗?

谢谢,克雷格。

【问题讨论】:

  • 在询问有关字符串操作的问题之前,请继续了解字符串操作。
  • 小心编写这样的 HTML 生成器。 您当前的代码很容易通过格式错误的参数进行脚本注入 - 例如,考虑 [IMG]http://url/to/image' onload='alert(1)[/IMG]。字符串替换不能代替好的解析器!
  • 我还在输出前对所有字符串使用 HTMLPurifier。 str 替换只是为了允许用户从论坛复制和粘贴。

标签: php html image str-replace bbcode


【解决方案1】:

我确信这可以使用正则表达式更有效地完成,但在 JavaScript 和 jQuery 中,我相信以下方法会起作用:

var text = '[img=http://img.photobucket.com/albums/v479/D2BBA/p3.jpg]';
var temp = text.substring(5);
var img = temp.substring(0, temp.length - 1);

var imgTag = $('<img src="' + img + '">');
$('html').append(imgTag);

在http://jsfiddle.net/gqayqgyL/ 尝试一下。 或者没有 jQuery:http://jsfiddle.net/gqayqgyL/3/.

【讨论】:

  • 理想情况下在 PHP 中需要这个,只是为了与字符串处理的其余部分保持一致。但这确实有效,非常感谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-28
  • 1970-01-01
  • 1970-01-01
  • 2012-12-06
  • 2014-08-28
相关资源
最近更新 更多