Есть такой вывод:
'{photos-num}' => newGram($last_photos['cnt'], $lang['pro_30'], $lang['pro_31'], $lang['pro_32'])
Не получается сделать сначало lang а потом cnt что делать?
оно выводит так: 2 Мои фотографии
А хотелось бы: Мои фотографии 2
Помогите пожалуйста, уже по разному пробывал, а результата 0
PHP
Php нужна помощь
измените функцию newGram
Ну смотри, давай разберем по частям тобою написанное: складывается впечатление, что функция newGram просто позволяет склонять фразу "Мои фотографии" в зависимости от количества и, тем самым, выводить что-то вроде "1 Моя фотография", "0 Моих фотографий", "2 Мои фотографии".
У тебя есть такие варианты:
1) Если тебе нужно это изменить только в этом месте, ты всегда можешь поверх заговнопарсить через regex например этот текст, вытащить из него только текст и сконкотенировать с количеством после.
`
как вариант:
if (!function_exists('newGramReverse')) {
function explodeNewGram($str){
$parts = explode(' ', $str);
$count = array_shift($parts);
return implode(' ', $parts) . ' ' . $count;
}
}
и юзать так
' { photos-num } ' => explodeNewGram(newGram($last_photos['cnt'], $lang['pro_30'], $lang['pro_31'], $lang['pro_32']))
`
2) Написать свою функцию, возвращающую вариант с обратным отображением, типо такого:
`
if (!function_exists('newGramReverse')) {
function newGramReverse($num, $form_for_1, $form_for_2, $form_for_5){
$num = abs($num) % 100; // берем число по модулю и сбрасываем сотни (делим на 100, а остаток присваиваем переменной $num)
$num_x = $num % 10; // сбрасываем десятки и записываем в новую переменную
if ($num > 10 && $num < 20) // если число принадлежит отрезку [11;19]
return $form_for_5 . ' ' . $num;
if ($num_x > 1 && $num_x < 5) // иначе если число оканчивается на 2,3,4
return $form_for_2 . ' ' . $num;
if ($num_x == 1) // иначе если оканчивается на 1
return $form_for_1;
return $form_for_5 . ' ' . $num;
}
}
И вызывать уже newGramReverse
' { photos-num } ' => newGramReverse($last_photos['cnt'], $lang['pro_30'], $lang['pro_31'], $lang['pro_32'])
`
3) Или такую свою функцию, возвращающую вариант с обратным отображением, но без количества:
`
if (!function_exists('newGramReverse')) {
function newGramReverse($num, $form_for_1, $form_for_2, $form_for_5){
$num = abs($num) % 100; // берем число по модулю и сбрасываем сотни (делим на 100, а остаток присваиваем переменной $num)
$num_x = $num % 10; // сбрасываем десятки и записываем в новую переменную
if ($num > 10 && $num < 20) // если число принадлежит отрезку [11;19]
return $form_for_5;
if ($num_x > 1 && $num_x < 5) // иначе если число оканчивается на 2,3,4
return $form_for_2;
if ($num_x == 1) // иначе если оканчивается на 1
return $form_for_1;
return $form_for_5;
}
}
И вызывать уже newGramReverse но добавлять в конце и количество тоже....
' { photos-num } ' => newGramReverse($last_photos['cnt'], $lang['pro_30'], $lang['pro_31'], $lang['pro_32']) . ' ' .$last_photos['cnt']
`
Но вообще г; вно какое-то вы месите, если честно.
У тебя есть такие варианты:
1) Если тебе нужно это изменить только в этом месте, ты всегда можешь поверх заговнопарсить через regex например этот текст, вытащить из него только текст и сконкотенировать с количеством после.
`
как вариант:
if (!function_exists('newGramReverse')) {
function explodeNewGram($str){
$parts = explode(' ', $str);
$count = array_shift($parts);
return implode(' ', $parts) . ' ' . $count;
}
}
и юзать так
' { photos-num } ' => explodeNewGram(newGram($last_photos['cnt'], $lang['pro_30'], $lang['pro_31'], $lang['pro_32']))
`
2) Написать свою функцию, возвращающую вариант с обратным отображением, типо такого:
`
if (!function_exists('newGramReverse')) {
function newGramReverse($num, $form_for_1, $form_for_2, $form_for_5){
$num = abs($num) % 100; // берем число по модулю и сбрасываем сотни (делим на 100, а остаток присваиваем переменной $num)
$num_x = $num % 10; // сбрасываем десятки и записываем в новую переменную
if ($num > 10 && $num < 20) // если число принадлежит отрезку [11;19]
return $form_for_5 . ' ' . $num;
if ($num_x > 1 && $num_x < 5) // иначе если число оканчивается на 2,3,4
return $form_for_2 . ' ' . $num;
if ($num_x == 1) // иначе если оканчивается на 1
return $form_for_1;
return $form_for_5 . ' ' . $num;
}
}
И вызывать уже newGramReverse
' { photos-num } ' => newGramReverse($last_photos['cnt'], $lang['pro_30'], $lang['pro_31'], $lang['pro_32'])
`
3) Или такую свою функцию, возвращающую вариант с обратным отображением, но без количества:
`
if (!function_exists('newGramReverse')) {
function newGramReverse($num, $form_for_1, $form_for_2, $form_for_5){
$num = abs($num) % 100; // берем число по модулю и сбрасываем сотни (делим на 100, а остаток присваиваем переменной $num)
$num_x = $num % 10; // сбрасываем десятки и записываем в новую переменную
if ($num > 10 && $num < 20) // если число принадлежит отрезку [11;19]
return $form_for_5;
if ($num_x > 1 && $num_x < 5) // иначе если число оканчивается на 2,3,4
return $form_for_2;
if ($num_x == 1) // иначе если оканчивается на 1
return $form_for_1;
return $form_for_5;
}
}
И вызывать уже newGramReverse но добавлять в конце и количество тоже....
' { photos-num } ' => newGramReverse($last_photos['cnt'], $lang['pro_30'], $lang['pro_31'], $lang['pro_32']) . ' ' .$last_photos['cnt']
`
Но вообще г; вно какое-то вы месите, если честно.
Похожие вопросы
- Нужна помощь по PHP
- Регистрация php обработчик, нужна помощь
- Нужна помощь c запросами и базой данных, PHP, MySQL
- PHP язык: Помощь
- для написания скриптов на PHP нужна програма компилятор?
- какой функционал делают на сайтах с помощью php? вообще не пойму что конкретно пишут на этом языке на сайтах..
- Как спарсить страницы с помощью PHP (адрес страниц тот же, но содержимое разное в зависимости от введённого логина)?
- Как заменить html код с помощью php файла.
- Для чего нужен PHP?
- PHP Polling ChatGPT