0

我还有另一个问题,尽管我认为这个问题可能不那么平凡。但是快速免责声明,这个有点开放,所以让我首先说我不是在寻找一个完整的解决方案来解决我在这里打开的更大问题,如果我扩大限制,我提前道歉可接受的参考代码包含的最低限度。我尊重你的时间,而且我更喜欢自己把这些碎片拼凑起来:P

顺便说一句,问题来了:我设置了一个 PHP 函数,它从 Twitter 提要中提取文本,然后将其作为一种“社交媒体”侧边栏发布在网站上。麻烦的是,推文中包含的链接被复制为简单的文本。例子:

    <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,将其包装在一些友好的“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 的第二种解决方案

如果你想要一个 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>-tags 都包装在具有 ID 的容器中。

  • 它结合使用ID 选择器标签选择器:`$('#content p') 来选择所有推文
  • 之后它遍历所有元素:
    • 它使用从每个条目中获取文本$(value).text()
    • replaceURLWithHTMLLinks使用from this answer替换锚点
    • <p>使用更新-tag的 HTML$(value).html()
于 2012-08-15T11:50:19.110 回答