За последние 24 часа нас посетили 17480 программистов и 1715 роботов. Сейчас ищет 1701 программист ...

Перенос строки

Тема в разделе "PHP для новичков", создана пользователем _Flash_, 23 июн 2006.

  1. andykey

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

    С нами с:
    17 авг 2006
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Красноярск
    Но ведь точка та в тексте есть точно
     
  2. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    а зачем в скобках указано 200? мож без него ? ;)
     
  3. andykey

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

    С нами с:
    17 авг 2006
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Красноярск
    так это же то количество знаков которое мне нужно отрезать от всего текста
     
  4. Mavir

    Mavir Guest

    А если указываешь 200, то значит начинаешь искать точку, начиная с 200-го символа
     
  5. andykey

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

    С нами с:
    17 авг 2006
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Красноярск
    Ну так смысл этой строки отрезать от текста 200 знаков и чтоб точкой этот кусок заканчивался.
    Не красиво когда прежложение оборвано.

    Главное то в том что функция выдает результат который нужен.
    Только перед этим выдает сообщение об ошибке.
     
  6. andykey

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

    С нами с:
    17 авг 2006
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Красноярск
    Попробовал выдает такую ошибку.

    Мож в самом тексте проблема.
     
  7. Mavir

    Mavir Guest

    Если текст меньше 200 символов, то тогда будет выдаваться эта ошибка.

    Не надо брать в кавычки переменнуюв функции substr. Нужно просто писать:
    $this->out_text=substr($this->out_text, 0, strpos($this->out_text, ".", 200));
     
  8. andykey

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

    С нами с:
    17 авг 2006
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Красноярск
    Текст который режу намного больше 200 символов. Точек в тексте куча.
    Кавычки убрал. Не помогло :(
     
  9. andykey

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

    С нами с:
    17 авг 2006
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Красноярск
    И с некоторыми же текстами все проходит гладко без ошибок
     
  10. def

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

    С нами с:
    24 апр 2006
    Сообщения:
    230
    Симпатии:
    0
    Адрес:
    Питер
    поясни, какая задача ?
     
  11. andykey

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

    С нами с:
    17 авг 2006
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Красноярск
    Задача такова:
    Есть текст и нужно сделать к нему анонс.
    Т.е. взять из этого текста первые 200 знаков (примерно, с точностью до знака здесь не получится :) ). И чтобы выглядело это красиво надо чтобы этот кусок заканчивался точкой.

    Функция делает все правильно но выдает ошибку, которая печатается перед анонсом и очень сильно портит компазишин.
     
  12. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    А ака тебе вот это
    может проблема в том, что в условиях нужно поставить ===
    if($pos !== false)
     
  13. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    PHP:
    1. <?php
    2. $str = 'text text text text text. text text
    3. text text text text text text. text text text. text text text
    4. text text. text text text text text text text text. text text
    5. text text text text text text. text text text. text text text
    6. text text. text text text';
    7. if (strlen($str) > 200) {
    8.     $pos = strpos($str, '.', 200);
    9.     if (false === $pos) $pos = strpos($str, ' ', 200);
    10.     echo (false === $pos) ? substr($str, 0, 200) : substr($str, 0, $pos+1);
    11. }
    12. else echo $str;
    13. ?>
     
  14. def

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

    С нами с:
    24 апр 2006
    Сообщения:
    230
    Симпатии:
    0
    Адрес:
    Питер
    тогда

    совершенно верно.

    вряд ли.

    на каком тексте проблема ?
     
  15. Raa

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

    С нами с:
    28 июл 2006
    Сообщения:
    209
    Симпатии:
    0
    Какой же ты неприятный тип. Вечно ты до чего-то докапаться хочешь. У тебя комплексы?
    Я не отказываюсь от своих слов. Просто разговор считаю бесполезным.
     
  16. Raa

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

    С нами с:
    28 июл 2006
    Сообщения:
    209
    Симпатии:
    0
    Ну тогда кидай:
    1. Текст.
    2. Описание ошибки, которая происходит на этом тексте.
    3. Код, в котором происходит ошибка.
    4. Строку, в которой происходит ошибка.
     
  17. andykey

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

    С нами с:
    17 авг 2006
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Красноярск
    История текста накова:
    текст это статья которая была написана в ворде закинута в индизайн потом закинута обратно в ворду убраны спецсимволы которые используются при верстке типа принудительных переносов не разрывных пробелов и тд.

    Вощем ваяю сайт газеты :)
     
  18. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    andykey
    текст, при обработке которого возникает ошибка, в студию.

    upd: первые 250 символов, если текст слишком большой.
     
  19. andykey

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

    С нами с:
    17 авг 2006
    Сообщения:
    16
    Симпатии:
    0
    Адрес:
    Красноярск
    Ура нашел ошибку! :)

    Текстов у меня около 200 штук в каждом тексте не меньше 3Кб обрабатывал я их массивом.
    И при определенных условиях у меня появлялся пустой элемент массива.
    Вот на этом пустом элементе функция и спотыкалась.
    А так как количество текстов соответствовало колличеству результатов, поэтому и доперло не сразу. Пришлось вручную по одному элементу проверить.
    Когда разобрался, к середине ночи, испытал чуйство близкое к оргазму :)

    Всем огромное спасибо за участие :)
     
  20. Mavir

    Mavir Guest

    Если бы прочитал вмимательнее мое сообщение
    то, может быть, додумался раньше ;)
     
  21. chemister

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

    С нами с:
    18 июл 2010
    Сообщения:
    8
    Симпатии:
    0
    Прошу прощения, у меня возникла аналогичная проблема.
    Получаю текст из блоба и в нем нужно заменить переносы строк на <p>\n :
    Код (Text):
    1.  
    2.  $out_text = ibase_blob_echo($row[0]);
    3.  $out_text=str_replace( "\r\n" , "<p>\n" , $out_text);
    4.  echo $out_text; //выводим описание
    но данная конструкция не работает. Текст на экране выводиться в одну строку, а в просмотре html-кода текст показывается с разбитием на строки.
    кодировка базы данных win1251 если это имеет значение.