0

对,基于这个问题Tweet clickable links with twitteroauth? ,

我如何实际解析整个字符串并将 t.co 链接部分替换为

<a href=""></a>

部分?

例如,我在推特上发布了这个 -

Hey check out this link www.google.com

目前在我的网站上显示

Hey check out this link http://t.co/generatedlink

那么我如何解析它并使它成为这个

Hey check out this link <a href="http://t.co/generatedlink">http://t.co/generatedlink</a>

这将在我的网站上显示如下:

嘿,看看这个链接http://t.co/generatedlink

我如何能够检测到推文文本的某个部分内部有链接?还是我要解决这个问题?

4

3 回答 3

1

您需要了解Twitter 实体

当您请求推文时,请确保您使用 include_entities=true

例如:

https://api.twitter.com/1/statuses/show.json?id=220197158798897155&include_entities=true

在响应中,您将在其中看到一个名为“entities”的元素,您将看到“urls”。

这将包含推文中的所有 URL 及其位置(索引)。

"text": "Twitter for Mac is now easier and faster, and you can open multiple windows at once http://t.co/0JG5Mcq",

"entities": {

  "urls": [

    {

      "url": "http://t.co/0JG5Mcq",

      "display_url": "blog.twitter.com/2011/05/twitte…",

      "expanded_url": "http://blog.twitter.com/2011/05/twitter-for-mac-update.html",

      "indices": [

        84,

        103

      ]

    }

  ],

}
于 2012-07-06T13:59:26.840 回答
0
function urlify(text) {
    var urlRegex = /(https?:\/\/[^\s]+)/g;
    return text.replace(urlRegex, function(url) {
        return '<a href="' + url + '">' + url + '</a>';
    })}

var text = "Hey check out this link http://t.co/generatedlink";
var a = urlify(text);
alert(a);

上述解决方案非常适合您的需求。我也有一个小提琴链接看看http://jsfiddle.net/UhzCx/

我在这里得到了这个答案Detect URLs in text with JavaScript

于 2012-07-06T14:05:21.713 回答
0

如果你可以使用 javascript,这里有一个例子http://jsfiddle.net/3VF96/13/

功能

function generateURL(text){
   var str=text;
    var n=str.indexOf("http");
    var strv=str.substring(0,n);
    var link=str.substring(n,str.length);
    strv=strv+" <a href='"+link+"'>"+link+"</a>";
      $("#Link").append(strv);
}
​
于 2012-07-06T14:09:30.257 回答