Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает mb_convert_case 
:(
    Опции темы
kilogram
Дата 14.4.2012, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: -1
Всего: 0



Так как функция  ucfirst преобразует в верхний регистр лишь латиницу, а не кирилицу каждую первую букву, каждого следующего предложения в тексте, решил использовать альтернативную функцию mb_convert_case Прочитал в документации, там такой пример, но на экран ничего не выводистя вообще, хоть и эко стоит, хотя функции mb_strtolower и mb_strtoupper для других возможностей работают. Почему этот код не выводит ничего?

Код
<?php
$str = "у мэри был маленький ягненок и она его очень любила";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Выведет У МЭРИ БЫЛ МАЛЕНЬКИЙ ЯГНЕНОК И ОНА ЕГО ОЧЕНЬ ЛЮБИЛА
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Выведет У Мэри Был Маленький Ягненок И Она Его Очень Любила
?>


Это сообщение отредактировал(а) kilogram - 14.4.2012, 23:20
PM MAIL   Вверх
kilogram
Дата 14.4.2012, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: -1
Всего: 0



Странно как-то, пришлось перекодировать сам файл index.php в ЮТФ-8, тогда только заработало.
PM MAIL   Вверх
kilogram
Дата 15.4.2012, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: -1
Всего: 0



Код

<html><body>
<?php

$str = "у мэри Был маленький ягненок и она его очень любила. однажды она купила слона.";

$str = mb_convert_case($str,MB_CASE_TITLE,"UTF-8");
echo $str;
echo '<br>'.ucfirst($str);
?>
</body></html>



Что-то эти 2 функции не оправдали моих надежд.
Мне нужно чтоб кадая первая буква, в каждом следующем предложении начиналась с большой буквы, а они в каждом слове все с большой буквы, не подскажете какую функцию в такой ситуации использовать?


Это сообщение отредактировал(а) kilogram - 15.4.2012, 00:04
PM MAIL   Вверх
Fortop
Дата 15.4.2012, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



preg_replace + callback

или комбинация из explode array_walk mb_convert_case implode

Это сообщение отредактировал(а) Fortop - 15.4.2012, 09:36


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
MoLeX
Дата 16.4.2012, 06:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Код

mb_language('russian');
mb_internal_encoding( 'UTF-8' );

if( ! function_exists( 'mb_ucfirst' ) )
{
    function mb_ucfirst( $string, $e = 'utf-8' )
    {
        if( function_exists( 'mb_strtoupper' ) && function_exists( 'mb_substr' ) && ! empty( $string ) )
        {
            $string = mb_strtolower( $string, $e );
            $upper = mb_strtoupper( $string, $e );
            preg_match( '#(.)#us', $upper, $matches );
            $string = $matches[1] . mb_substr( $string, 1, mb_strlen( $string, $e ), $e );
        }
        else
            $string = ucfirst( $string );

        return $string;
    }
}



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Fortop
Дата 16.4.2012, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(MoLeX @  16.4.2012,  06:11 Найти цитируемый пост)
if( function_exists( 'mb_strtoupper' ) && function_exists( 'mb_substr' )

А можно поинтересоваться в чем логика такой проверки?


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
MoLeX
Дата 16.4.2012, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(Fortop @  16.4.2012,  10:00 Найти цитируемый пост)
А можно поинтересоваться в чем логика такой проверки? 

нужно)
Не всегда на хостинге есть mb, так чтобы ошибки в логах не плодить


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Fortop
Дата 17.4.2012, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



MoLeX, я ошибаюсь или достаточно проверить одну функцию? Зачем две?

К тому же http://php.net/manual/en/function.extension-loaded.php


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
MoLeX
Дата 17.4.2012, 06:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Fortop, действительно можно и так сделать

Добавлено через 6 минут и 16 секунд
и мне больше нравится одна общая проверка необходимых расширений при установке движка/модуля


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0484 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.