1

我正在尝试编写一个 if 函数来检查图像的宽度,然后应用一个 css 类。

我希望该功能像这样工作

如果图像在 150px 到 189px 的范围内,则应用 css 类“span-4”

190px 到 229px:css 类“span-5”

230px 到 269px:css 类“span-6”

我试过这样:

list($width, $height, $type, $attr) = getimagesize($article_image);

if(strlen($width) < 189 && strlen($width) > 150) { $cssClass = "span-4"; }
if(strlen($width) < 229 && strlen($width) > 190) { $cssClass = "span-5"; }
if(strlen($width) < 269 && strlen($width) > 230) { $cssClass = "span-6"; }

那是行不通的。有谁看到我做错了什么?

编辑:添加了函数来解释我从哪里得到 $width 变量

4

4 回答 4

2

这可能是因为您将$width其视为字符串,并得到它的长度。试着把它当作一个数字来处理。

if(($width < 189) && ($width > 150)) { $cssClass = "span-4"; }
于 2011-03-24T09:57:58.883 回答
1

strlen 获取 $width 变量的字符串长度。我不认为你想那样做。您很可能希望从每个 $width 中丢失 strlen()。

于 2011-03-24T09:58:29.820 回答
0

首先只计算一次字符串的长度并将其放入变量中。其次,在第二条和第三条语句中使用 else if。

于 2011-03-24T09:58:08.420 回答
0

strlen是,如函数名称所示,用于字符串。

我不确定我是否正确理解了你想要做什么,但是如果你有一个图像文件并且你想检查它的大小,你可以使用getimagesize

如果$width变量中已经有图像的宽度,则必须像这样进行检查:

if($width > 150 && $width < 190) { $cssClass = "span-4"; }
else if($width < 230) { $cssClass = "span-5"; }
else if($width < 270) { $cssClass = "span-6"; }
于 2011-03-24T09:59:11.900 回答