Столкнулся со следущим:
Тащю из БД большого объема текст.. кладу в переменую.
Необходимо разбить по количеству символов текст
например в
$text1 = "100 символов";
$text2 = "оставщиеся символы";
Как ето реализовать?
заранее благодарен
Спустя 45 минут, 50 секунд (25.01.2009 - 23:58) Adamant написал(а):
PHP |
$text1 = substr($text, 0, 100); |
Спустя 3 минуты, 4 секунды (26.01.2009 - 00:01) jetistyum написал(а):
PHP |
$text = 'veryfuckinglongstring....'; |
Опередили!
Спустя 14 минут, 10 секунд (26.01.2009 - 00:15) kirik написал(а):
REZzANATOR, если необходимо вытащить только первые 100 символов (например для вывода короткого описания новости), то лучше тащить не весь текст из БД, и потом разбивать при помощи php, а сразу в запросе указывать что нужно вытащить.
Например -
Например -
SQL |
SELECT SUBSTRING(`text`, 1, 100) AS `text` FROM `table` WHERE ... |
Спустя 8 минут, 1 секунда (26.01.2009 - 00:23) jetistyum написал(а):
PHP |
$text1 = ''; |
еще версии???
Спустя 23 минуты, 8 секунд (26.01.2009 - 00:47) kirik написал(а):
jetistyum
PHP |
$text = 'какой-то текст'; |
Спустя 18 минут, 19 секунд (26.01.2009 - 01:05) jetistyum написал(а):
PHP |
$string = 'dasdasdasdasd'; |
кто еще?
Спустя 4 часа, 4 минуты, 36 секунд (26.01.2009 - 05:09) HardWoman написал(а):
Товарищи эксперты - не забывайте ставить оценки за помощь друг другу и другим пользователям - этим вы повышаете их статус.
Иначе все так и останутся новичками напоминаю у нас есть группы - знаток, профи, гуру
Иначе все так и останутся новичками напоминаю у нас есть группы - знаток, профи, гуру
Спустя 2 часа, 7 минут, 7 секунд (26.01.2009 - 07:17) kirik написал(а):
HardWoman, я уже несколько раз хотел поставить оценку, но не обнаружил на нужном месте кнопки. =) Подумал что вы убрали эту возможность.
Спустя 1 час, 22 минуты, 2 секунды (26.01.2009 - 08:39) REZzANATOR написал(а):
спасибо всем))
забыл про substr))
спасибо kirik за подсказку с БД
забыл про substr))
спасибо kirik за подсказку с БД
Спустя 3 дня, 23 часа, 36 минут, 41 секунда (30.01.2009 - 08:15) REZzANATOR написал(а):
товарищи..и снова хэлп(
в БД лежит текст + html разметка
и иногда когда код разбивает на части текст, он выхватывает кусок разметки.. и получается кразябра...
как предусмотреть чтобы если попадалась разметка то идем до тех пор пока не будет текст((загвоздка в том как распознать что ето текст, а не разметка..
можно смотреть на открывающиеся и закрывающиеся теги (<>)...хэлп вообщем
в БД лежит текст + html разметка
и иногда когда код разбивает на части текст, он выхватывает кусок разметки.. и получается кразябра...
как предусмотреть чтобы если попадалась разметка то идем до тех пор пока не будет текст((загвоздка в том как распознать что ето текст, а не разметка..
можно смотреть на открывающиеся и закрывающиеся теги (<>)...хэлп вообщем
Спустя 1 час, 10 минут, 11 секунд (30.01.2009 - 09:25) twin написал(а):
А вот потому, что нельзя в бд хранить текст с разметкой. БД предназначена для работы с данными, по этому все внесенные туда символы равны. Для пого и придумали псевдотеги (BB), что бы как то попытаться выделить разметку. Сейчас, что бы Вы не придумали, будет чё попало, потому что в самом тексте могут встретиться символы <> и Вы не сможете грамотно их интерпретировать. (Теоретически это возможно, но программу надо писать очень серьёзную, гораздо сложнее той, что делит разметку и текст до внесения в базу). Запретить использовать в тексте брички - плохо, они очень часто нужны. Так что мой Вам совет - переделайте структуру скрипта, пока не поздно. Вы потом захотите еще какие нибудь преобразования и опять начнуться проблемы.
Спустя 1 час, 23 минуты, 47 секунд (30.01.2009 - 10:49) dfsq написал(а):
twin, а как же wyiwyg-редакторы?
в БД текст с разметкой хранить можно автору просто нужно выработать единую структуру статьи или что там у него, чтобы не скрипт думал, что именно ему нужно выбрать, а разработчик заранее знал.
в БД текст с разметкой хранить можно автору просто нужно выработать единую структуру статьи или что там у него, чтобы не скрипт думал, что именно ему нужно выбрать, а разработчик заранее знал.
Спустя 9 минут, 54 секунды (30.01.2009 - 10:59) kirik написал(а):
REZzANATOR, можно вытаскивать текст, и применять к нему striptags(), но тогда сломается разметка.
Цитата (twin @ 30.01.2009 - 01:25) |
Для пого и придумали псевдотеги (BB), что бы как то попытаться выделить разметку. |
А собственно чем отличаются ббтэги от обычных хтмльных (кроме формы скобок)? Я про то, что с такой же вероятностью можно "порвать" ббтэг.
Спустя 57 минут, 34 секунды (30.01.2009 - 11:57) twin написал(а):
Я не к тому, что нужно использовать BB, я к тому, что их придумали, что бы не пускать разметку в базу. А визивиг, как вы изволили его назвать , это попытка облегчить жизнь юзеру, что бы он смог отформатировать СВОЙ, вводимый текст, который будет выведен в блоге или в каком нибудь общественном месте. С которым не предполагается больше никаких преобразований.
А пытаться делать структуру информации, которую нужно потом как то обрабатывать, снабдив разметкой - не правильно. Это то же самое, что Вы сначала зальете разноцветными чернилами страницы книги, а потом попытаетесь прочитать, что же там написано, соскабливая краску. Вы же не станете этого делать, зачем же заставляете бедный php?
А пытаться делать структуру информации, которую нужно потом как то обрабатывать, снабдив разметкой - не правильно. Это то же самое, что Вы сначала зальете разноцветными чернилами страницы книги, а потом попытаетесь прочитать, что же там написано, соскабливая краску. Вы же не станете этого делать, зачем же заставляете бедный php?
Спустя 10 часов, 2 минуты, 48 секунд (30.01.2009 - 22:00) kirik написал(а):
Цитата (twin @ 30.01.2009 - 03:57) |
А пытаться делать структуру информации, которую нужно потом как то обрабатывать, снабдив разметкой - не правильно. |
Хм.. Как тогда работать с хтмльными страницами? Мне кажется что dfsq под "единой структурой" имел ввиду то, что можно каждый блок на странице, например, заносить в отдельное поле.
REZzANATOR, кстати если нужно вырезать кусок статьи из начала, то можно использовать "кат". Тоесть взять некий тэг, который будет определять, что все что до него - короткое начало статьи, а после - основная статья. И потом через MySQL-ный SUBSTRING_INDEX() доставать все что до этого тэга. Можно заюзать что-то типа <!--cut-->, чтобы при выводе полной статьи он не показывался.
_____________