- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Уважаемые знатоки! Имею задачу и незнаю ответа.
Есть текст в переменной
$text="
строка один
строка 2
строка 3
строка 4
строка 5000";
как разбить текст чтоб
$text[0];//строка 1 попала cюда
$text[1];//строка 2 попала cюда
$text[2];//строка 3 по 10 попала cюда
$text[3];//строка 4-5000 попала cюда
Тоесть строк может быть разное количество.
explode("\n");//Разбивает на много строчек.
По этому надо разбить как то по другому.
Или же разбить как то еще, по количеству слов к примеру
или знаков..
Может кто знает как и с чем играться. Повторяю привязки в тексте нет за исключением переноса строки или пробела.
Ну вы сами для себя определите, что будет критерием разбития строки.
explode("\n"); очень хорошее решение. Просто потом полученный массив можете обработать по своему усмотрению. В каждой строке можете посчитать слова и если слов меньше определённого значений, то объединить со следующей строкой и т.п.
Всё в ваших руках.
Возможные критерии:
1. Количество слов
2. Количество предложений
3. Длина строки
ну типа того.
Считайте количество знаков, и если оно больше определенного количества, то продолжайте считать до следующей точки, восклицательного или вопросительного знака, и на этом обрубайте. Надеюсь, я верно понял задачу :)
А почему в вашем примере текст разбит на 4 части? :)
$text[0];//строка 1 попала cюда
$text[1];//строка 2 попала cюда
$text[2];//строка 3 по 10 попала cюда
$text[3];//строка 4-5000 попала cюда
Если нужно разбить текст на 3 части с примерно равным количеством непустых строк, можно так попробовать
А почему в вашем примере текст разбит на 4 части? :)
Если нужно разбить текст на 3 части с примерно равным количеством непустых строк, можно так попробовать
Уважаемый ArtInt.
Данная конструкция работает но показывает не весь текст
Если добавить значение $parts_count = 3; больше
то выходит ошибка.
Самые удобные наверное будут варианты
1. Количество слов
или
2. Количество предложений
Как предложил DyaDya .
Если делать по точке(Предложению) Опять же получиться
массив с кучей значений.
Самое простое наверное разбить точкой.
Даже можно разбить на 2 части текст.
Но разбить так чтобы часть 1 имела N строк. А 2 часть все остальное.
Скажу еще проще мне надо Создать анонс статьи .
Чтобы скрипт автоматически разбил текст взяв первые 2-4 строки для анонса.
А все остальное попало в другую переменну.
seosniks добавил 07.10.2008 в 12:26
В общем нашел самое простое решение
результат работы
токлько как сделать чтоб не рвать слова.
На странице в принципе не видно разрыва.
:D
Предлагаю такой вариант:
1. explode по \n
2. сколько нужно заносим в анонс (предположим первых три элемента)
3. убиваем из массива полученного в п.1 элементы с id=0, 1, 2 (тут еще надо поставить условие на проверку существования массива, дабы избежать ошибок, если текст короткий.)
4. оставшееся в массиве объеденяем по implode
По словам труднее сделать, поскольку если бить по пробелам... а вдруг разрыв попадет на тег?
Предлагаю такой вариант:
1. explode по \n
2. сколько нужно заносим в анонс (предположим первых три элемента)
3. убиваем из массива полученного в п.1 элементы с id=0, 1, 2 (тут еще надо поставить условие на проверку существования массива, дабы избежать ошибок, если текст короткий.)
4. оставшееся в массиве объеденяем по implode
По словам труднее сделать, поскольку если бить по пробелам... а вдруг разрыв попадет на тег?
Собственно я думал об этом так как вывести все строки в масив проще всего.
Но я так и не допер как
например весь массиив имеет
(array[0]
[0] => строка 1
[1] => строка 2
[2] => строка 3
[3] => строка 4
[4] => строка 5
[5] => строка 6
и так до конца текста
)
Но нам как то надо
нам надо из него взять первые три или 4 строки
А остальные загнать в array[1] объеденить .
1. explode по \n
2. сколько нужно заносим в анонс (предположим первых три элемента)
3. убиваем из массива полученного в п.1 элементы с id=0, 1, 2
Вот здесь мне не ясно как убить, проверить и объеденить
4. объеденяем по implode это понятно
В принципе первые три строки
(array[0]
[0] => строка 1
[1] => строка 2
[2] => строка 3
Считываем элементарно. Но вот как все остальное объеденить .
Ведь это будет уже
4 значение массива.
Хотя на крайний случай я сделал вариант.Хотя он и не идеален. Но зато работает на все 100
есть забавная функция wordwrap. вот она подойдет для разрыва по ко-ву букв. из минусов - анонс не по предложениям, а из плюсов - все анонсы примерно одной длины)
выглядить, наверн, будет примерно так