X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> склоняем слова
Salikhoff_hb
Salikhoff_hb
Topic Starter сообщение 2.4.2011, 14:55; Ответить: Salikhoff_hb
Сообщение #1


в общем надо научить каталог сайтов склонять слова, совсем не пойму как сделать. Например 1-ответ; 2, 3, 4-ответа; 5-10-ответов и т.д. и т.п.!
Как сделатЬ?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
сообщение 2.4.2011, 15:28; Ответить: asbury
Сообщение #2


ну мне кажется надо от 0 до 99 все возможные варианты просто перечислить - естественно не каждый в отдельности, а промежутки от 5-20 "ов", 21 "", 22-24 "а", путем срезания последний двух цифр. Хотя скорее всегое сть более адекватные решения
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
forest69
forest69
сообщение 2.4.2011, 16:44; Ответить: forest69
Сообщение #3


Смотришь на какую цифру оканчивается число и подставляешь к слову нужное окончание. Ведь что 1 ответ, что 101 ответ, одинаково.
Идея ясна?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 2.4.2011, 16:55; Ответить: Letmetouchyou
Сообщение #4


есть пример на яваскрипте, по аналогии и на пхп можешь сделать
[JS]
<script>
GetNoun = function(number, one, two, five) {
number = Math.abs(number);
number %= 100;
if (number >= 5 && number <= 20) {
return five;
}
number %= 10;
if (number == 1) {
return one;
}
if (number >= 2 && number <= 4) {
return two;
}
return five;
}

alert( GetNoun(10, 'ответ', 'ответа', 'ответов') );
</script>[/JS]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Salikhoff_hb
Salikhoff_hb
Topic Starter сообщение 2.4.2011, 17:02; Ответить: Salikhoff_hb
Сообщение #5


forest69, ага, не мог бы примерно показать каким образом и еще например ответ больше 1 000 000 как укротить ответ
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Salikhoff_hb
Salikhoff_hb
Topic Starter сообщение 2.4.2011, 17:07; Ответить: Salikhoff_hb
Сообщение #6


Letmetouchyou, не хочу php и так уже js много!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 2.4.2011, 18:07; Ответить: Letmetouchyou
Сообщение #7


(' post='107846 @ 2.4.2011, 20:07)
Letmetouchyou, не хочу php и так уже js много!

Логика в твоих словах совсем не видна
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Salikhoff_hb
Salikhoff_hb
Topic Starter сообщение 2.4.2011, 18:12; Ответить: Salikhoff_hb
Сообщение #8


Letmetouchyou, запятую пропустил. Хочу сделать на php. Т.к. и так уже js много.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
сообщение 2.4.2011, 18:24; Ответить: asbury
Сообщение #9


[PHP]function declOfNum2($number, $cases) {
$cases = array(2, 0, 1, 1, 1, 2);
return sprintf($cases[ ($number%100>4 && $number%100<20)? 2 : $cases[min($number%10, 5)] ], $number);
}[/PHP]

Пример использования:
[PHP]echo declOfNum2(5, array("%d ответ", "%d ответа", "%d ответов"));[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 2.4.2011, 18:58; Ответить: Letmetouchyou
Сообщение #10


Да вы че прикалываетесь?

[PHP]<?php

function declination($number,$words){

//$number = (int)$number;
list($single, $two, $few) = explode(',', preg_replace('/,\s*|\s*,/',',',$words) );


$number %= 100;
//$number = substr( (string)$number,-2 );

if ($number >= 5 && $number <= 20) {
return $few;
}
$number %= 10;
if ($number == 1) {
return $single;
}
if ($number >= 2 && $number <= 4) {
return $two;
}
return $five;
}

$answer = declination(12, 'ответ, ответа, ответов');

var_dump($answer);

?>[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Как првильно указать слова для рекламы в Google на двух языках
1 Nekit 907 12.2.2024, 23:58
автор: malamut
Открытая тема (нет новых ответов) Подключить ключевые слова для адвордс к загрузчику
2 Mukis 4890 9.10.2021, 18:27
автор: Mukis
Открытая тема (нет новых ответов) Спарсить ключевые слова
3 Timka 2330 30.12.2018, 2:52
автор: Timka
Открытая тема (нет новых ответов) Контент, ключевые слова, семантический анализ
0 Andry_mw 1105 23.10.2015, 20:41
автор: Andry_mw
Открытая тема (нет новых ответов) Нужно подобрать ключевые слова для сайта (плачу 15 р. за 1 ключ)
2 Thrash 1229 25.11.2014, 18:42
автор: Thrash


 



RSS Текстовая версия Сейчас: 29.3.2024, 2:35
Дизайн