PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
rostik.vorobev
Отправлено: 19 Мая, 2016 - 23:33:59
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




Проблема вот в чем. Есть у меня сайт, есть у меня канал в телеграме, есть бот который раньше просто брал последний пост с сайта, получал его короткое описание, ссылку и название, постил это все дело в телеграм в канал.

Сейчас потребовалось сделать что бы он не просто анонсы кидал в канал а полные посты, и тут то и начались проблемы.
Дело в том что wordpress хранит посты html кодом, там всякие img, p, li, ul, strong, ... etc куча всего, там может быть кнопка или еще что. API методов получить чистый текст поста без картинок и прочего нет.

Я нахожусь в затруднении, с одной стороны я могу представить как использовать explode или регулярки для типичного поста, находить всякие теги, потом дробить пост на кусочки, вычленять ненужные куски, соединять. Но все не предусмотришь, иногда на сайт видео постится, иногда реклама прямо в странице. И потом скорость будет медленной. И опять же после того как я порежу пост на куски и соединю, нет никакой гарантии что где-то не потеряется перенос строки или пробелы, с маркированным списком вообще атас, в результате пост в телеграме будет не красивым.

Вопрос такой, был ли у кого опыт в подобном парсинге по сути? Как вы решили это?
Если то что я описал выше единственный вариант, то как мне лучше сделать все это что бы было лучше.
(Добавление)
https://forum[dot]antichat[dot]ru/threads/220733/ вот нагуглил как раз тот вариант что я предполагаю, но нужен ваш совет.
 
 Top
andrewkard
Отправлено: 20 Мая, 2016 - 14:51:24
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 918
Дата рег-ции: Нояб. 2014  


Помог: 19 раз(а)




Скорее всего что придется что то вырезать, а потом можно так:


а почему просто не вставить со всеми html тегами что там есть? Предварительно заменив пути к картинкам.
 
 Top
rostik.vorobev
Отправлено: 20 Мая, 2016 - 18:04:41
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




andrewkard пишет:
Скорее всего что придется что то вырезать, а потом можно так:


а почему просто не вставить со всеми html тегами что там есть? Предварительно заменив пути к картинкам.


Если я запощу в канал все как есть, то в канал придет просто текстом всё. Телеграм просто запостит весь html код как текст, например так будет: <p class="main">qweqwe</p><img src="123.jpg">.....<ul>.....</ul>.
 
 Top
rostik.vorobev
Отправлено: 23 Мая, 2016 - 18:35:11
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




Проблема решена. Нашел способ из wp вытащить текст без html и изображений.


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require_once('wp-load.php');
  3. $my_postid = 2289;//This is page id or post id
  4. $content_post = get_post($my_postid);
  5. $content = $content_post->post_content;
  6. echo wp_filter_nohtml_kses($content);
  7. ?>

(Добавление)
andrewkard пишет:
Скорее всего что придется что то вырезать, а потом можно так:


а почему просто не вставить со всеми html тегами что там есть? Предварительно заменив пути к картинкам.


Вариант с strip_tags тоже хорош, а то я уже было начал писать свою функцию по поиску тегов и вычленению их.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« CMS и фреймворки »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB