функция диапазона php strlen - PullRequest
1 голос
/ 24 марта 2011

Я пытаюсь написать функцию if, которая проверяет ширину изображения, а затем применяет класс css.

Я хочу, чтобы функция работала так

, если изображение находится вдиапазон от 150 до 189 пикселей, применяется класс CSS «span-4»

190px до 229 пикселей: класс css «span-5»

230px до 269 пикселей: класс 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 ]

2 голосов
/ 24 марта 2011

Это, вероятно, потому что вы рассматриваете $width как строку и получаете ее длину.Попробуйте вместо этого трактовать его как число.

if(($width < 189) && ($width > 150)) { $cssClass = "span-4"; }
1 голос
/ 24 марта 2011

strlen возвращает длину строки переменной $ width. Я не думаю, что вы хотите сделать это. Скорее всего, вы хотите потерять strlen () из каждого $ width.

0 голосов
/ 24 марта 2011

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"; }
0 голосов
/ 24 марта 2011

сначала вычислите длину строки только один раз и поместите ее в переменную.Во-вторых, используйте else if во втором и третьем утверждениях.

...