За последние 24 часа нас посетили 216404 программиста и 2202 робота. Сейчас ищут 1644 программиста ...

вывод из базы первые 250 символов

Тема в разделе "PHP для новичков", создана пользователем serj011, 7 авг 2011.

  1. serj011

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

    С нами с:
    18 апр 2010
    Сообщения:
    279
    Симпатии:
    0
    столкнулся с такой проблеммой, из базы вытаскивается ячейка с текстом... как сделать так что бы в другом месте вытаскивать этот текст только первые допустим 250 символов?
     
  2. rainarr

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

    С нами с:
    20 ноя 2010
    Сообщения:
    276
    Симпатии:
    0
    вытягиваешь всю строку, и
    substr($text, 0, 250);
     
  3. serj011

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

    С нами с:
    18 апр 2010
    Сообщения:
    279
    Симпатии:
    0
    спасибо
     
  4. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Аналог substr есть и среди MySQL-функций для работы с текстом.
     
  5. nikolay

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

    С нами с:
    5 авг 2011
    Сообщения:
    17
    Симпатии:
    0
    Дабы не создавать новую тему, спрошу тут. А как сделать так, чтобы если 250 символов обрывалось на полуслове, доходило до конца? А лучше до точки, причём точки, после которой идёт большая буква. Велика вероятность того, что в тексте может встретиться что-то типа "и т. д." а после этого предложение продолжится.
     
  6. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    вообще делай отдельное поле и в нем храни этот нужный кусок текста. так ты будешь контролировать и не произойдет косяков, когда у тебя там хтмл какойто будет храниться и изза обрезки кода отрежется часть закрывающих тегов.
    или просто в середине текста храни какуюто метку, которая не будет выводиться юзерам, например ::END_LINE::. или хтмл-комментарий. и на пхп вырезать часть от начала строки до вот этой вот метки. саму метку также вырезать.
     
  7. nikolay

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

    С нами с:
    5 авг 2011
    Сообщения:
    17
    Симпатии:
    0
    Придумал такой алгоритм - брать по разрыву строки. Например, есть такой текст:

    Строка 1.
    Строка 2.
    Строка 3.

    Скрипт ищет первый перевод строки, считает количество символов, если больше 250, эту строку и выводит. Если меньше, берёт вторую строку, и так далее. Но тут есть проблема, а что если в первой или даже неважно какой строке будет, например, 5000 предложений, а только потом перевод строки? Можно отсчитать 250 символов, но тут опять всё упирается в цельность слова. С одной стороны, цельность слова сделать несложно, всего-то и нужно, что проверить, если следующий символ пробел, значит, всё атас. Если нет, проверять, пока не наткнёшься на пробел. Существования слова в 1000 символов, скажем, весьма маловероятно. Это уже какие-то косяки при добавлении контента. Так вот, сложнее сделать именно до конца предложения, а не слова.

    Описанный выше вариант хорош, но он снижает автоматизацию, а это не есть хорошо в системах, где контент-менеджер не должен вводить краткое описание или что-то типа того. А проверить цельность предложения - не такая простая задача, по крайней мере, для меня.
     
  8. alexfer

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

    С нами с:
    2 авг 2010
    Сообщения:
    239
    Симпатии:
    0
    concat_ws в помощь