За последние 24 часа нас посетили 17538 программистов и 1724 робота. Сейчас ищут 913 программистов ...

Подскажите по коду.

Тема в разделе "PHP для новичков", создана пользователем Alex_ST, 16 май 2012.

  1. Alex_ST

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

    С нами с:
    5 дек 2011
    Сообщения:
    23
    Симпатии:
    0
    Пол коду если в конце предложения точка, то выводим как есть. Если в конце предложения символ не идентичный задоному то, ставим точку.
    Этот код работает.
    Код (Text):
    1.  
    2. <?php
    3.  
    4. $str = "Text text text text.";
    5.  
    6. if ($str{strlen($str)-1} !== '.') {
    7. $str = $str.".";
    8. }
    9. else {
    10. $str = $str;
    11. }
    12.  
    13. echo $str;
    14.  
    15. ?>
    но вот если я делаю так:

    Код (Text):
    1.  
    2. <?php
    3.  
    4. $str = "Text text text text.";
    5.  
    6. if ( ($str{strlen($str)-1} !== '.') or ($str{strlen($str)-1} !== '!') or ($str{strlen($str)-1} !== '?') ) {
    7. $str = $str.".";
    8. }
    9. else {
    10. $str = $str;
    11. }
    12.  
    13. echo $str;
    14.  
    15. ?>
    То на выходе получу (Text text text text..) или (Text text text text!.)
    в зависимости какой знак стоял вконце текста исходника.

    Что не так у меня, подскажите пожалуйста
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    or = или
     
  3. Kaner

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

    С нами с:
    6 янв 2011
    Сообщения:
    58
    Симпатии:
    0
    вообще правильней было бы так написать:
    Код (Text):
    1. $arr=array('.','!','?');
    2. $str='Text text text';
    3. if(!in_array($str[strlen($str)-1],$arr))
    4.     $str=$str.".";
    5. echo $str;