Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
3 / 3 / 1
Регистрация: 20.02.2018
Сообщений: 126

Вывод 50% статьи

23.01.2019, 09:22. Показов 1349. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!!!
Подскажите как грамотно вывести только 50% статьи с картинками?(заранее естественно ничего не известно про кол-во слов, символов, кол-ва картинок).
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.01.2019, 09:22
Ответы с готовыми решениями:

Вывод статьи из переменной
Привет! Подскажите примером как мне реальзовать такое, есть пхп файл articles.php внутри него я создам 5 переменных в которых...

ID страницы или вывод статьи из БД
Всем привет. Каким образом осуществить моё желание. Есть у меня сайт на нём около 30 страниц.Все HTML! В сайтостроении набираюсь опыта и...

Вывод темы статей, и вывод самой статьи
Здравствуйте. Пожалуйста, подскажите. У меня в базу записывается:id, тема статьи, текст статьи. Я вывожу несколько тем статей и...

12
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
23.01.2019, 11:40
Цитата Сообщение от riddlejs Посмотреть сообщение
грамотно вывести только 50% статьи с картинками
грамотно и ровно 50% несовместимые вещи. Да ещё и с картинками. Вот если текст состоит из нечётного количества символов, то что тогда?

А топорный метод такой:
PHP
1
2
3
$text = 'Текст любой длины';
$pol_statii = mb_strlen($text, 'utf-8')/2;
echo mb_substr($text,0,$pol_statii,'utf-8');
Но если посередине окажется картинка, то скрипт её не пощадит.
1
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,886
23.01.2019, 14:15
Разместите в статье специальный маркер и выводите содержимое до него.

Только структуру DOM не повредите. Среди структурных элементов содержимого статьи маркер должен оставаться на верхнем уровне.
2
3 / 3 / 1
Регистрация: 20.02.2018
Сообщений: 126
23.01.2019, 15:55  [ТС]
estic, Этот маркер он типа тэга? я просто должен только для не авторизированных юзеров выводить пол статьи.
0
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,886
23.01.2019, 16:00
Что-то среднее между тегом и текстом. Можете использовать комментарий, например:
HTML5
1
<!-- more -->
1
3 / 3 / 1
Регистрация: 20.02.2018
Сообщений: 126
25.01.2019, 12:14  [ТС]
Варианты хорошие! с тэгом мне понравился из за большего контроля, но у меня одно НО! что делать если статей уже тысячи? ну т е не реально по всем статьям идти и ставить тэг. Может еще есть идеи у кого?
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
25.01.2019, 12:50
Лучший ответ Сообщение было отмечено riddlejs как решение

Решение

Цитата Сообщение от riddlejs Посмотреть сообщение
с тэгом мне понравился из за большего контроля
на самом деле вариант не универсален, сегодня нужно показать 50%, а завтра 25%, а послезавтра ещё сколько-то, а для отдельной статьи на столько-то меньше, и т.п. И что, каждый раз все статьи переписывать?

И ещё момент, если Вы знаете куда именно нужно ставить метку, то почему бы просто не вырезать текст до этого места при выводе статьи?

Я вижу такую реализацию: вырезаем 50% текста, потом смотрим в левую сторону (можно и в правую, зависит от жадности )) ) и ищем вхождение символов "<" и ">". Если первым (стоит ближе) попадается "<" (если смотрим влево), то вырезаем всё до него (то есть количество символов 50% минус кол. символов до "<"), а если первым попался ">", то оставляем как есть.

Может есть и проще реализация, но это первое что пришло на ум. Возможно даже временно вырезать теги и вместо них ставить метки, и после обрезания вставить на место...
1
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,886
26.01.2019, 13:48
riddlejs, напишите код расстановки маркеров, делающий предварительный анализ DOM-структуры содержимого для определения допустимых мест расстановки маркеров.

sasha0012, на нормальных сайтах сам автор статьи определяет основную "точку разрыва", сам пишет аннотации и анонсы и т.д.

Добавлено через 5 минут
...дело программиста - не позволить автору поставить маркер там, где это нарушает структуру.
1
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
26.01.2019, 16:26
Цитата Сообщение от estic Посмотреть сообщение
на нормальных сайтах сам автор статьи определяет основную "точку разрыва"
ну здесь же совсем другой случай. Автор статьи не решает где будет разрыв, разрыв определяет маркетолог исходя из своей логики (модели). Автор статьи может вообще не знать в каких целях будет использована его статья. Он деньги получил и забыл про неё, какие там точки разрыва и где они будут стоять, ему по барабану.

Кучу примеров знаю когда статьи заказывают на биржах копирайта и просто вешают на сайт пачками. И ставить маркеры при добавлении нет никакого смысла. Сегодня стоит задача спрятать половину текста, а через месяц маркетолог определит что пользователи не проявляют интерес к статьям которые прочитаны на 50% и решит урезать порог, либо увеличить, либо вообще отрывками показывать по 10% (заплати n денег и увидишь следующий блок, и т.п.).

Это по любому через функцию нужно резать, метки здесь не применимы.
1
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
26.01.2019, 16:56
А зачем 50% выводите, пару строк, как все делают, и далее тег вставляем, читаем полную статью и не нужно парится
1
3 / 3 / 1
Регистрация: 20.02.2018
Сообщений: 126
28.01.2019, 09:44  [ТС]
andyyy, Зачем это вопрос хороший) но это не я так решил, честно говоря для данного сайта выводить 50% да еще и 2е 50% только после регистрации это ахтунг(какбы это всеравно что закапать его живьем).Причем сайт даже не продает ничего).

Добавлено через 20 минут
sasha0012, Я твой вариант пока выбрал с < >. Всем спасибо!
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
28.01.2019, 10:03
Цитата Сообщение от riddlejs Посмотреть сообщение
вариант пока выбрал с < >
только имей ввиду, что он корректно будет работать только для самозакрывающихся тегов (img, input, br, ...), для остальных (table, ul, p, ...), нужно прорабатывать свою логику обнаружения и вырезания.

В любом случае эту работу нужно проводить уже с обрезанным текстом (ищем и очищаем от "битых" закрывающихся тегов).
1
3 / 3 / 1
Регистрация: 20.02.2018
Сообщений: 126
28.01.2019, 10:26  [ТС]
sasha0012, Ну это да стоит учесть иначе он закроет только li в списке например, а не ul, ну и в таком духе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.01.2019, 10:26
Помогаю со студенческими работами здесь

Laravel5 Вывод статьи
Как мне вывести одну статью? Так я вывожу все статьи, в index.blade.php выводится массив из 5 записей, с параметрами дата публикации,...

Вывод статьи через id
Я ещё новичок в PHP и я пытаюсь написать микро-блог. У меня есть файл index.php в котором через while выводятся все статьи(заголовок ,дата...

Вывод статьи по категории
Всем привет, в php недавно, написал (вернее списал, переделал) банальный скрипт: В modules.php вот это: &lt;?php ...

Вывод полной статьи
Здравствуйте, у меня возникла проблема (для наглядности я буду копировать весь код). Вот пользователь заполнил форму (help.php): ...

Вывод полной статьи по id
Всем примет. Вообще сделал я вывод из дб на главную страницу и ограничил текст как привью. Но не могу организовать переход на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru