-2
私の正規表現の構文は、 "rel ="の行のなかに何らかの形で "<"のリンクを壊しています。twitter regex breaking、thinking thinking issue
ここにある:
<?php
function parseTweet($text) {
$pattern_url = '~(?>[a-z+]{2,}://|www\.)(?:[a-z0-9]+(?:\.[a-z0-9]+)[email protected])?(?:(?:[a-z](?:[a-z0-9]|(?<!-)-)*[a-z0-9])(?:\.[a-z](?:[a-z0-9]|(?<!-)-)*[a-z0-9])+|(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(?:/[^\\/:?*"|\n]*[a-z0-9])*/?(?:\?[a-z0-9_.%]+(?:=[a-z0-9_.%:/+-]*)?(?:&[a-z0-9_.%]+(?:=[a-z0-9_.%:/+-]*)?)*)?(?:#[a-z0-9_%.]+)?~i';
'@([A-Za-z0-9_]+)';
$tweet = preg_replace('/(^|\s)#(\w+)/', '\1#<a href="http://search.twitter.com/search?q=%23\2? rel="nofollow">\2</a>', $text);
$tweet = preg_replace('/(^|\s)@(\w+)/', '\[email protected]<a href="http://www.twitter.com/\2? rel="nofollow">\2</a>', $tweet);
$tweet = preg_replace('#(^|[\n ])(([\w]+?://[\w\#$%&~.\-;:=,[email protected]\[\]+]*)(/[\w\#$%&~/.\-;:=,[email protected]\[\]+]*)?)#is', '\\1
<a href=\"\\2\" title=\"\\2\" rel=\"nofollow\">[link]</a>', $tweet);
return $tweet;
}
$username='stephenfry'; // set user name
$format='json'; // set format
$tweet=json_decode(file_get_contents("http://api.twitter.com/1/statuses/user_timeline/{$username}.{$format}")); // get tweets and decode them into a variable
$theTweet = parseTweet($tweet[0]->text);
echo $theTweet;
?>
リンクはHTMLを解析さ:
Great deal: Jot by Adonit, a precise capacitive touch stylus, today 15% off with coupon code: 'Jot' -
<a rel="\"nofollow\"" title="\"http://t.co/QvFi6CKK\"" href="\"http://t.co/QvFi6CKK\"">[link]</a>
ハッシュタグは、HTMLを解析さ:
I'm so sorry - that last #
<a nofollow"="" href="http://search.twitter.com/search?q=%23GameOfShadowsUK? rel=">GameOfShadowsUK</a>
tweet should hav 3been sent at 2:21 - my f****d up arsing w**k-mess of a life disallowed it :-(
は危険なコードをビニングし、より良い方法で行ってきました。回答を参照してください。
いくつかの入出力を予想された出力に投稿できますか? –
確かに、いくつかのつぶやきの出力を投稿しました。 – SMacFadyen
正規表現のコードではわからない構文上の問題があることがわかります。 ""など – SMacFadyen