Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 转换BBCode文本时检查图像大小_Php_Jquery_Html_Css_Image - Fatal编程技术网

Php 转换BBCode文本时检查图像大小

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]

在我使用ckEditor作为BBCode编辑器的任务中,我的站点直接面临一个问题

我有用户提交的内容,可以包含[img]标签

我真的希望图像的宽度为100%,这很好。我将任何[img]标记转换为html,并应用一个如我所愿的样式化的类

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())

    })

});