0

別の質問がありますが、これは少し平凡ではないかもしれません。しかし、簡単な免責事項です。これはもう少し制限がないので、ここで開いているより大きな問題の完全な解決策を探しているわけではないということから始めましょう。制限を超えている場合は、事前に謝罪します。参照コードを含めるための許容可能な最小値。私はあなたの時間を尊重します、そして私は自分で作品をまとめることを好みます:P

それでは、質問があります。Twitterフィードからテキストを取得し、それを一種の「ソーシャルメディア」サイドバーとしてWebサイトに公開するPHP関数を設定しました。問題は、ツイートに含まれているリンクが単純なテキストとして再現されていることです。例:

    <p>Last night saw the USA win gold in Women's Beach Volleyball---today at 1pm... the
    USA WOMEN SOCCER team will go... http://t.co/M7rtaZFC</p>

リンクされていないURLの最後にあるURLを取得し、わかりやすい「a」タグでラップして、陽気な方法で送信したいと思います。jQueryのリターンをターゲット'http://' +残りの文字列に実際にフィルタリングすることを除いて、ほぼすべてを理解できます。

これはjQueryを使用して可能ですか?繰り返しになりますが、私はあまり詳細なことは期待していません。正しい方向に私を向けてくれる人を探しているだけです。お時間をいただきありがとうございます!

4

1 に答える 1

2

PHPだけを使用した最初のソリューション

ツイートをどのように取得するかはわかりませんが、以前にこのPHPコードを使用したところ、<a>-tagsでラップされたリンクがすぐに出力されます。したがって、ここでJavaScriptを使用する必要はありません。

// get tweets
function UtilityGetLatestTweets() {

    $user       = 'username';
    $limit      = 10;
    $value      = '';

    $curl       = curl_init();

    curl_setopt($curl, CURLOPT_URL, 'http://search.twitter.com/search.atom?q=from:' . $user . '&amp;rpp=' . $limit);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_HEADER, 0);

    $result     = curl_exec($curl);
    curl_close($curl);

    $xml        = simplexml_load_string($result);

    foreach ($xml->entry as $tweet) {   
        $value .= $tweet->content; 
    }

    return $value;
}

$tweets     = UtilityGetLatestTweets();

多分これはあなたを助けます。

編集:JavaScriptを使用した2番目のソリューション

JavaScriptソリューションが必要な場合は、次のように使用できます。

JavaScript

function replaceURLWithHTMLLinks(text) {
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
    return text.replace(exp,"<a href='$1'>$1</a>"); 
}

// when document is loaded
$(document).ready(function () {
    // select all p-tags within a container
    $('#content p').each( function (key, value) {
        // replace the content
        $(value).html( replaceURLWithHTMLLinks($(value).text()) );
    });
});

HTML

<div id="content">
    <p>Some text and link http://somethingsomething.com</p> 
    <p>Some text and link http://somethingdifferent.com</p>
</div>

これは、すべての<p>タグがIDを持つコンテナー内にラップされていることを前提としています。

  • IDセレクターをタグセレクターと組み合わせて使用​​します: `$('#content p')すべてのツイートを選択します
  • その後、すべての要素をループします。
    • を使用して各エントリからテキストを取得します$(value).text()
    • replaceURLWithHTMLLinksこの回答からを使用してアンカーを置き換えます
    • <p>を使用して-tagのHTMLを更新します$(value).html()
于 2012-08-15T11:50:19.110 に答える