Wer es sich bei der Erstellung von News einfach machen möchte, kann z.B. die Tweets seines Accounts bei Twitter anzeigen lassen. Diese stellt der Kurznachrichtendienst Twitter auch als XML zu Verfügung, was einem die Einbindung erheblich vereinfacht.
Hier zwei Beispiele:
Und hier ein simples Beispiel in PHP:
<?
$tweets = simplexml_load_file('http://www.twitter.com/status/user_timeline/CrankSchenk.xml');
$i = 0;
while($i <= 9)
{
$tmp = $tweets->status{$i}->created_at;
echo "<strong>".trim(substr($tmp,8,2)).". ".substr($tmp,4,3)." ".
substr($tmp,26,4)."</strong><br />".$tweets->status{$i}->text.'<br /><br />';
$i++;
}
?>
Was aber, wenn man die im Text vorkommenden Links, User und Keywords mit richtigen A-Tags versehen möchte? In diesem Fall kommt man um ein Parsen des Textes kaum herum. Hierzu hatte ich – noch vor der aktuellen Twitter-API – eine Funktion erstellt, die den Text komplett durchparst und inkl. aller Ankers zurückgibt.
<?
function parseTwitterText($tweet_str)
{
####################################################
# Links ersetzen
####################################################
$tmp_str = $tweet_str.' ';
$arr_tmp = array();
$look4 = 'http';
$prefix = '';
while (strpos($tmp_str, $look4) > 0)
{
$tmp_str_pos = strpos($tmp_str, $look4);
$tmp_str_start = substr($tmp_str, 0, $tmp_str_pos);
$tmp_str_middle = substr($tmp_str, $tmp_str_pos);
$tmp_str_pos2 = strpos($tmp_str_middle, ' ');
$tmp_str_middle = substr($tmp_str, $tmp_str_pos, $tmp_str_pos2);
$tmp_str_end = substr($tmp_str, ($tmp_str_pos + $tmp_str_pos2));
array_push($arr_tmp, $tmp_str_middle);
$tmp_str = $tmp_str_end;
}
for($i=0; $i<count($arr_tmp); $i++)
{
$tweet_str = str_replace($arr_tmp[$i],
'<a href="'.$prefix.$arr_tmp[$i].'" target="_blank">
'.$arr_tmp[$i].'</a>', $tweet_str);
}
unset($arr_tmp);
####################################################
# Account ersetzen
####################################################
$tmp_str = $tweet_str.' ';
$arr_tmp = array();
$look4 = '@';
$prefix = 'http://twitter.com/';
while (strpos($tmp_str, $look4) > 0)
{
$tmp_str_pos = strpos($tmp_str, $look4);
$tmp_str_start = substr($tmp_str, 0, $tmp_str_pos);
$tmp_str_middle = substr($tmp_str, $tmp_str_pos);
$tmp_str_pos2 = strpos($tmp_str_middle, ' ');
$tmp_str_middle = substr($tmp_str, $tmp_str_pos, $tmp_str_pos2);
$tmp_str_end = substr($tmp_str, ($tmp_str_pos + $tmp_str_pos2));
array_push($arr_tmp, $tmp_str_middle);
$tmp_str = $tmp_str_end;
}
for($i=0; $i<count($arr_tmp); $i++)
{
$tweet_str = str_replace($arr_tmp[$i],
'<a href="'.$prefix.str_replace($look4,'',$arr_tmp[$i]).'" target="_blank">
'.$arr_tmp[$i].'</a>', $tweet_str);
}
unset($arr_tmp);
####################################################
# Keyword ersetzen
####################################################
$tmp_str = $tweet_str.' ';
$arr_tmp = array();
$look4 = '#';
$prefix = 'http://search.twitter.com/search?q=%23';
while (strpos($tmp_str, $look4) > 0)
{
$tmp_str_pos = strpos($tmp_str, $look4);
$tmp_str_start = substr($tmp_str, 0, $tmp_str_pos);
$tmp_str_middle = substr($tmp_str, $tmp_str_pos);
$tmp_str_pos2 = strpos($tmp_str_middle, ' ');
$tmp_str_middle = substr($tmp_str, $tmp_str_pos, $tmp_str_pos2);
$tmp_str_end = substr($tmp_str, ($tmp_str_pos + $tmp_str_pos2));
array_push($arr_tmp, $tmp_str_middle);
$tmp_str = $tmp_str_end;
}
for($i=0; $i<count($arr_tmp); $i++)
{
$tweet_str = str_replace($arr_tmp[$i], '
<a href="'.$prefix.str_replace($look4,'',$arr_tmp[$i]).'" target="_blank">
'.$arr_tmp[$i].'</a>', $tweet_str);
}
unset($arr_tmp);
return $tweet_str;
}
$tweets = simplexml_load_file('http://www.twitter.com/status/user_timeline/CrankSchenk.xml');
$i = 0;
while($i <= 9)
{
$tmp = $tweets->status{$i}->created_at;
echo "<strong>".trim(substr($tmp,8,2)).". ".substr($tmp,4,3)." ".substr($tmp,26,4)."
</strong><br />".parseTwitterText($tweets->status{$i}->text).'<br /><br />';
$i++;
}
?>
Wer eine bessere oder einfachere Lösung auf seiner Festplatte hat, darf diese gerne posten.


