[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Определенное количество символов
REZzANATOR
Товарищи доброго времени сутог

Столкнулся со следущим:
Тащю из БД большого объема текст.. кладу в переменую.
Необходимо разбить по количеству символов текст
например в

$text1 = "100 символов";
$text2 = "оставщиеся символы";

Как ето реализовать?

заранее благодарен wink.gif



Спустя 45 минут, 50 секунд (25.01.2009 - 23:58) Adamant написал(а):
PHP
$text1 substr($text0100);
$text2 substr($text101);

Спустя 3 минуты, 4 секунды (26.01.2009 - 00:01) jetistyum написал(а):
PHP
$text 'veryfuckinglongstring....';
$text1 substr($text0100);
$text2 substr($text101);

Опередили!

Спустя 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 '';
for(
$i=0$i<100$i++){
$text1 .= $text{$i};
}

$text2 strstr($text$text1);


еще версии??? biggrin.gif

Спустя 23 минуты, 8 секунд (26.01.2009 - 00:47) kirik написал(а):
jetistyum

PHP
$text = 'какой-то текст';

preg_match("/([\w\W]{0,100})([\w\W]*)/", $text, $out);

echo 'Первые 100 букв - '.$out[1].'<br /><br />';
echo 'Остальной текст - '.$out[2];

wink.gif

Спустя 18 минут, 19 секунд (26.01.2009 - 01:05) jetistyum написал(а):
PHP
$string 'dasdasdasdasd';
$array str_split($string100);

$string1 $array[0];
$string2 implode(""array_slice($array1));


кто еще? biggrin.gif

Спустя 4 часа, 4 минуты, 36 секунд (26.01.2009 - 05:09) HardWoman написал(а):
Товарищи эксперты - не забывайте ставить оценки за помощь друг другу и другим пользователям - этим вы повышаете их статус.
Иначе все так и останутся новичками smile.gif напоминаю у нас есть группы - знаток, профи, гуру

Спустя 2 часа, 7 минут, 7 секунд (26.01.2009 - 07:17) kirik написал(а):
HardWoman, я уже несколько раз хотел поставить оценку, но не обнаружил на нужном месте кнопки. =) Подумал что вы убрали эту возможность.

Спустя 1 час, 22 минуты, 2 секунды (26.01.2009 - 08:39) REZzANATOR написал(а):
спасибо всем))
забыл про substr))
спасибо kirik за подсказку с БД wink.gif

Спустя 3 дня, 23 часа, 36 минут, 41 секунда (30.01.2009 - 08:15) REZzANATOR написал(а):
товарищи..и снова хэлп(
в БД лежит текст + html разметка
и иногда когда код разбивает на части текст, он выхватывает кусок разметки.. и получается кразябра...

как предусмотреть чтобы если попадалась разметка то идем до тех пор пока не будет текст((загвоздка в том как распознать что ето текст, а не разметка..
можно смотреть на открывающиеся и закрывающиеся теги (<>)...хэлп вообщем

Спустя 1 час, 10 минут, 11 секунд (30.01.2009 - 09:25) twin написал(а):
А вот потому, что нельзя в бд хранить текст с разметкой. БД предназначена для работы с данными, по этому все внесенные туда символы равны. Для пого и придумали псевдотеги (BB), что бы как то попытаться выделить разметку. Сейчас, что бы Вы не придумали, будет чё попало, потому что в самом тексте могут встретиться символы <> и Вы не сможете грамотно их интерпретировать. (Теоретически это возможно, но программу надо писать очень серьёзную, гораздо сложнее той, что делит разметку и текст до внесения в базу). Запретить использовать в тексте брички - плохо, они очень часто нужны. Так что мой Вам совет - переделайте структуру скрипта, пока не поздно. Вы потом захотите еще какие нибудь преобразования и опять начнуться проблемы.

Спустя 1 час, 23 минуты, 47 секунд (30.01.2009 - 10:49) dfsq написал(а):
twin, а как же wyiwyg-редакторы?
в БД текст с разметкой хранить можно smile.gif автору просто нужно выработать единую структуру статьи или что там у него, чтобы не скрипт думал, что именно ему нужно выбрать, а разработчик заранее знал.

Спустя 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, я к тому, что их придумали, что бы не пускать разметку в базу. А визивиг, как вы изволили его назвать smile.gif , это попытка облегчить жизнь юзеру, что бы он смог отформатировать СВОЙ, вводимый текст, который будет выведен в блоге или в каком нибудь общественном месте. С которым не предполагается больше никаких преобразований.
А пытаться делать структуру информации, которую нужно потом как то обрабатывать, снабдив разметкой - не правильно. Это то же самое, что Вы сначала зальете разноцветными чернилами страницы книги, а потом попытаетесь прочитать, что же там написано, соскабливая краску. Вы же не станете этого делать, зачем же заставляете бедный php? smile.gif

Спустя 10 часов, 2 минуты, 48 секунд (30.01.2009 - 22:00) kirik написал(а):
Цитата (twin @ 30.01.2009 - 03:57)
А пытаться делать структуру информации, которую нужно потом как то обрабатывать, снабдив разметкой - не правильно.

Хм.. Как тогда работать с хтмльными страницами? Мне кажется что dfsq под "единой структурой" имел ввиду то, что можно каждый блок на странице, например, заносить в отдельное поле.

REZzANATOR, кстати если нужно вырезать кусок статьи из начала, то можно использовать "кат". Тоесть взять некий тэг, который будет определять, что все что до него - короткое начало статьи, а после - основная статья. И потом через MySQL-ный SUBSTRING_INDEX() доставать все что до этого тэга. Можно заюзать что-то типа <!--cut-->, чтобы при выводе полной статьи он не показывался.





_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.