Php 转换BBCode文本时检查图像大小
在我使用ckEditor作为BBCode编辑器的任务中,我的站点直接面临一个问题 我有用户提交的内容,可以包含[img]标签 我真的希望图像的宽度为100%,这很好。我将任何[img]标记转换为html,并应用一个如我所愿的样式化的类Php 转换BBCode文本时检查图像大小,php,jquery,html,css,image,Php,Jquery,Html,Css,Image,在我使用ckEditor作为BBCode编辑器的任务中,我的站点直接面临一个问题 我有用户提交的内容,可以包含[img]标签 我真的希望图像的宽度为100%,这很好。我将任何[img]标记转换为html,并应用一个如我所愿的样式化的类 function basicbbcode($text) { $text = str_replace("[IMG]", "<img class='buildimage' src='", "$text"); $text = str_replace("[/IMG]
function basicbbcode($text) {
$text = str_replace("[IMG]", "<img class='buildimage' src='", "$text");
$text = str_replace("[/IMG]", "'>", "$text");
$text = str_replace("[img]", "<img class='buildimage' src='", "$text");
$text = str_replace("[/img]", "'>", "$text");
}
函数基本码($text){
$text=str_替换(“[IMG]”,“”,“$text”);
$text=str_替换(“[img]”,“”,“$text”);
}
问题是当有人使用小/低分辨率图像时。我不想把这张照片拉长,因为它看起来会很恐怖
我的目标是找到一个阈值,因此如果图像的宽度超过800px,则将其命名为buildimage类。如果它较小,则给它一类buildimage small
然后我会保持图像的自然大小。我试图推广用户提供高质量的图像,但同时希望保持网站看起来很好,没有拉伸不良的图像,因为有分辨率很小
因此,有没有一种方法可以在图像作为$text变量从数据库中取出时检查图像大小,然后采取相应的措施。理想情况下使用php,但可能使用jquery
不知道这一点,可能吗?您可以使用
getimagesize()
:
函数的作用是:确定任何给定图像的大小
归档并返回尺寸以及文件类型和
在普通HTML IMG标记内使用的高度/宽度文本字符串,以及
对应的HTTP内容类型
来源:要在jQuery中执行此操作,可以简单如下:
var box = $("#boxWithImageInside"),
img = box.find("img.buildimage");
if (img.width() > box.width()) {
img.width("100%");
img.height("auto");
}
代码未经测试,因此您可能必须根据需要对其进行调整。如果您想在客户端解决问题,这可能会有所帮助:
$(函数(){
isImgLargerThan800px=函数(src){
var img=新图像();
img.onload=函数(){
如果(此宽度<800){
警报('此映像需要小类')
}否则{
警报('此映像需要大类')
}
};
img.src=src;
};
//试验
$('a')。在('click',函数(){
isImgLargerThan800px($(this.text());
警报('正在检查URL的图像大小:'+$(this).text())
})
});
这看起来是个很棒的功能,谢谢!转换时会起作用吗?或者我需要做一些准备工作。因为我没有做foreach或者任何我不能(在我的头脑中)检查每一个,然后相应地采取行动。旋转PHP进程来做客户端可以做的事情是不必要的。可能会检查具有buildimage的div id的所有项目,并确定大小,然后根据需要分配另一个类?这是否会对页面上具有buildimage的image类的每个图像都这样做?在询问之前尝试一下。
var box = $("#boxWithImageInside"),
img = box.find("img.buildimage");
if (img.width() > box.width()) {
img.width("100%");
img.height("auto");
}
$(function () {
isImgLargerThan800px = function (src) {
var img = new Image();
img.onload = function () {
if (this.width < 800) {
alert('this image need SMALL class')
} else {
alert('this image need LARGE class')
}
};
img.src = src;
};
//TEST
$('a').on('click', function () {
isImgLargerThan800px($(this).text());
alert('Now checking for image size of URL : ' + $(this).text())
})
});