| imho.ws |
![]() |
|
|
|||||||
|
Сообщения:
Перейти к новому /
Последнее
|
Опции темы |
|
|
# 1 |
|
Newbie
Регистрация: 24.04.2005
Сообщения: 23
![]() |
Урезание названия продукта по целым словам, не по кол-ву символов
Приветствую.
Я сделал tab delimited feed (тестовой файл, где вся инфа разделена табуляцией, предназначена для сабмита списка товара) Так вот, в фиде название должно быть 55 символов. Вот часть кода: Код:
$this->data[$data['products_id']] = array ( 'name' => substr($this->strip($data['products_name']), 0, 55), Хочу спросить спецов, каким образом обрезать на 55 символов или меньше, что бы слово, если оно попадает под урезание, обрезалось полностью? Спасибо заранее. |
|
|
|
|
# 2 |
|
::VIP::
Регистрация: 19.10.2003
Адрес: Питер
Пол: Male
Сообщения: 1 467
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Прохожий_
Делай проверку, если длина больше 55, то ищи последний пробел, лежащий в пределах от первого символа до 55-ого и выкидывай всё что после него (включая его), если там пробелов не существует, то обрезай по 55 символу. PHP код:
|
|
|
|
|
# 4 |
|
::VIP::
Регистрация: 06.03.2003
Адрес: DZ, LBP, Moscow
Пол: Male
Сообщения: 633
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Вариант для Perl
Код:
my $lenm=55; # Максимальная длина текста
my $namefirst="Это первоначальное название продукта, которое нужно урезать";
my $nameshort=""; # Здесь будет урезанное имя
if (length($namefirst)<=$lenm ) {
$nameshort=$namefirst;
}
else {
$ml=substr($namefirst,0,$lenm);
$ml=~ s/^(.+)(\s)(\S*)$/$1$2$3/;
$nameshort=$1;
}
$nameshort=substr($namefirst,0,$lenm); $nameshort=~ s/^(.+)(\s)(\S*)$/$1/;
__________________
Меня многие спрашивают, как я живу с тремя головами... На самом деле, я триедин, как Великие Бобы! |
|
|