Преобразование ссылки на статус твитера в html код статуса

#1 7 ноября 2017 в 19:53
Есть у кого нибудь готовый класс или ссылка для преобразования

twitter.com/philipmould/status/927542755500359680

в

  1. <blockquote class="twitter-tweet" data-lang="ru"><p lang="en" dir="ltr">A remarkable Jacobean re-emergence after 200 years of yellowing varnish 1/2 <a href="https://t.co/yBGNGDcNd7">pic.twitter.com/yBGNGDcNd7</a></p>&mdash; Philip Mould (@philipmould) <a href="https://twitter.com/philipmould/status/927542755500359680?ref_src=twsrc%5Etfw">6 ноября 2017 г.</a></blockquote>
  2. <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
  3.  
Не могу найти разобраться в этом вопросе по их api пока тоже. Искать твиты — да, а спарсить один единственный твит по ссылке — нет. Наверно можно через curl file_get_contents что то предпринять, но хотелось бы на основе api что то найти.
#2 7 ноября 2017 в 20:20
Оказалось всё можно решить самым простым образом.
Взяв за основу образец embed кода выбросив оттуда лишнее и устроив замену по регулярному выражению. Вроде пока работает


Вставил в пост ссылку вижу твит



кому надо, примерно так это выглядит:

  1.  
  2. $pattern = '%https://twitter.com/([a-zA-Z0-9\-_]+)/status/([a-zA-Z0-9\-_]+)%';
  3. $replacement = '<blockquote class="twitter-tweet" data-lang="ru"><a href="https://twitter.com/$1/status/$2?ref_src=twsrc%5Etfw"></a></blockquote>
  4. <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>';
  5.  
  6. $content = preg_replace($pattern, $replacement,$content);
Самое стрёмное что именно это решение напрашивалось у меня изначально, но думал не будет работать так просто.
Обращение к коллективному разуму опять помогло)
#3 7 ноября 2017 в 20:36
  1. $pattern = '%https://twitter.com/([a-zA-Z0-9\-_]+)/status/([a-zA-Z0-9\-_]+)%';
  2. $replacement = '<blockquote class="twitter-tweet" data-lang="ru"><a href="https://twitter.com/$1/status/$2?ref_src=twsrc%5Etfw"><i style="color:#00acee;" class="fa fa-twitter fa-spin" aria-hidden="true"></i> загрузка содержимого твита</a></blockquote>
  3. <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>';
  4.  
  5. $content = preg_replace($pattern, $replacement,$content);
если так, то до тех пор пока подгрузится сам твит на его месте будет выводиться уведомление что сейчас на этом месте что то будет и будет крутиться птичка логотип твиттера.
Птичка вылетит только у тех кто использует font awesome

В стандартном embed коде в этом месте до загрузки полного твита выводится текстовый фрагмент твита
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.