@evgen_nova

Возможно ли сократить вывод символов?

В коде
// Parsing page properties
	$gTpl->Assign(array(
'DESCRIPTION'	=> htmlspecialchars(str_replace('{NAME}', $goods['name'], 
str_replace('{DESCR}', html2text($goods['descr']), $goods['seo_descr']))),
));

выводится DESCRIPTION в полном объеме, а нужно чтобы выводилось до 250 символов.
Пробывал прикрутить подобный код:
if ( strlen($goods_descr) > $goods_descr_max && $goods_descr_max > 250 ) $goods_descr = substr($goods_descr, 0, 250, $goods_descr_max).'...';


но как правильно его прикрутить не понимаю, где то ошибка...
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
Machez
@Machez
Бу!
Ну начнем с того, что функция substr принимает всего 3 аргумента , вы пихаете туда аж 4.

А еще у вас скорее всего $goods_descr_max имеет значение более 250, вот ваше условие и не выполняется, т.к. у оператора && есть приоритеты. Почитайте документацию. Поменяйте условия в IF местами.

Решение вынесено из комментариев:
$gTpl->Assign(array('DESCRIPTION'	=> htmlspecialchars( str_replace( '{NAME}', $goods['name'], str_replace( '{DESCR}', html2text( ( strlen( $goods['descr'] ) > 250 ) ? substr( $goods['descr'], 0, 250 ) . '...' : $goods['descr'] ), $goods['seo_descr'] ) ) 
)));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы