Задать вопрос
Paul_Inglsmit
@Paul_Inglsmit
Wordpress-космонавт

Как забрать текст из twitter сохраняя ссылки в нем?

забираю текст из twitter применяя codebird-php
после инициализации пишу
global $cb;
	$cb->setReturnFormat(CODEBIRD_RETURNFORMAT_ARRAY);
	$timeline = $cb->statuses_userTimeline( 'screen_name=Djailds&count=5&exclude_replies=true' );
	
	foreach( $timeline as $tweet ) {
		$tweet_text = $tweet->text;
		echo $tweet_text.'<br/>';
	}

в итоге мне приходит текст без ссылок, точнее ссылки ка текст и хэштеги тоже

#Revera Free WordPress Theme: http://www.fabthemes.com/revera/
  • Вопрос задан
  • 2383 просмотра
Подписаться 2 Оценить 1 комментарий
Решения вопроса 2
Alexufo
@Alexufo
противоречивый, сложный, весь компьютерный.
Так сами дальше и разбирайте. Регулярки и вперед. Конечно он вам даст сырой текст. Нахрена ему хранить в бд лишнее. Вобще там наверняка все на js подхвачивается само. Так же и делайте.
stackoverflow.com/questions/1563844/best-hashtag-regex
stackoverflow.com/questions/9033018/regexp-to-vali...
Ответ написан
Paul_Inglsmit
@Paul_Inglsmit Автор вопроса
Wordpress-космонавт
вот эти с помощью этих регулярок можно преобразовать текст

в итоге получившийся код выглядит так:
global $cb;
	$timeline = $cb->statuses_userTimeline( 'screen_name=Djailds&count=5&exclude_replies=true' );

	foreach( $timeline as $tweet ) {
		$tweet_text = htmlentities($tweet->text, ENT_QUOTES);
		$display_url = $tweet->entities->urls[0]->display_url;
		// Linkify URLs
		$tweet_text = preg_replace("/[[:alpha:]]+:\/\/[^<>[:space:]]+[[:alnum:]\/]/i", "<a href=\"\\0\" target=\"_blank\">".$display_url."</a>", $tweet_text);
		// Linkify @mentions
		$tweet_text = preg_replace("/\B@(\w+(?!\/))\b/i", '<a href="https://twitter.com/\\1">@\\1</a>', $tweet_text); 
		// Linkify #hashtags
		$tweet_text = preg_replace("/\B(?<![=\/])#([\w]+[a-z]+([0-9]+)?)/i", '<a href="https://twitter.com/search?q=%23\\1">#\\1</a>', $tweet_text);
		echo $tweet_text.'<br/>';
	}


P.S. вот только с сслками сработает, если в тексте будет одна ссылка. Иначе нужно будет ставить уже другой вопрос
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы