За последние 24 часа нас посетил 19581 программист и 1289 роботов. Сейчас ищут 606 программистов ...

Первая буква заглавная?

Тема в разделе "Регулярные выражения", создана пользователем melihovgv, 8 мар 2012.

  1. melihovgv

    melihovgv Активный пользователь

    С нами с:
    2 мар 2011
    Сообщения:
    285
    Симпатии:
    0
    Адрес:
    Москва
    <?
    $url= file_get_contents('text1.txt');
    $string = $url;
    $patterns = array();
    $patterns[] = '/<p style="text-indent: 25px;">\d*\)\s/m';
    $replacements = array();
    $replacements[] = '<p style="text-indent: 25px;" class="contentheading">';
    $repl=preg_replace($patterns, $replacements, $string);
    echo $repl;
    ?>
    Вот эта строка /<p style="text-indent: 25px;">\d*\)\s/m
    находит строки такого вида
    <p style="text-indent: 25px;">3) организация форматированного текста</p>
    <p style="text-indent: 25px;">43) форматированние текста</p>
    Вопрос?
    Какого символа не хватает,чтобы первая буква была заглавной?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    вам типа нужно взять первую букву из оригинального текста (может быть строчной) и вывести ее в 100% случаев прописной? callback на strtoupper делайте
     
  3. melihovgv

    melihovgv Активный пользователь

    С нами с:
    2 мар 2011
    Сообщения:
    285
    Симпатии:
    0
    Адрес:
    Москва
    А на примере можно показать?
    Вот такое я получил
    вШХенсъеУЪа реЪлаУных рнлШЪнв в Њнрнлеве использование strtoupper
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а ваш код?
     
  5. melihovgv

    melihovgv Активный пользователь

    С нами с:
    2 мар 2011
    Сообщения:
    285
    Симпатии:
    0
    Адрес:
    Москва
    $str = "лиса";
    $str = strtoupper($str);
    echo $str

    Добавлено спустя 1 минуту 41 секунду:
    если ср1251-тогда выходит норм.
    а если utf8,абра кодабра
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. function first($string,$coding='utf-8')
    2. {
    3.     if(function_exists('mb_strtoupper') && function_exists('mb_substr') && !empty($string))
    4.     {
    5.         preg_match('#(.)#us',mb_strtoupper(mb_strtolower($string,$coding),$coding),$matches);
    6.         $string=$matches[1].mb_substr($string,1,mb_strlen($string,$coding),$coding);
    7.     }else{
    8.             $string=ucfirst($string);
    9.         }
    10. return $string;
    11. }
    12.  
    Код (PHP):
    1. $l="лиса";
    2. $f="fox";
    3.  
    4. echo first($l); //Лиса
    5.  
    6. echo first($f); //Fox
    7.  
     
  7. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Your, тут как бы человеку нужно прям в регулярке зафигачить капитализацию первого символа
    это через колбэк стринг-ту-аппер (можно и мультибайтному)
     
  8. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. $str='лиса';
    2. echo mb_substr(mb_strtoupper($str,'utf-8'),0,1,'utf-8').mb_substr($str,1,mb_strlen($str,'utf-8'),'utf-8'); //Лиса
    3.  
    Код (PHP):
    1. preg_match('#(.)#us',mb_strtoupper($str,'utf-8'),$m);
    2. echo $m[1].mb_substr($str,1,mb_strlen($str),'utf-8'); //Лиса
    3.  

    Код (PHP):
    1. echo iconv('windows-1251','utf-8',ucfirst(iconv('utf-8','windows-1251',$str))); //Лиса
    2.  
    Ну еще вот так:))

    Если еще что - нибудь в голову придет кину)), чтобы было.
     
  9. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    когда мне надо будет добавить в код весёлую изюминку, я к тебе обращусь, Your)))))))
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    да, он жгун...