如何建立一个检索链接并用该页面的相关标题名称替换网址的系统?

时间:2012-09-16 05:37:45

标签: php html ajax

最近我看到,当我将链接放在我的个人资料中时,它将其替换为问题的确切标题。所以我想知道,他们是怎么做到的?

  

They replaced a url with the relevant link with a title as well

我猜他们通过ajax发送链接,然后通过php implode ,explode创建一个链接头来实现这一点。这是正确的方式/与Stack Overflow相同的方式吗?

2 个答案:

答案 0 :(得分:5)

假设我正在粘贴textarea中的上述链接,就像这样

http://stackoverflow.com/questions/12444652/how-to-make-a-link-system-link-stackoverw

这是幕后发生的事情。 GET请求发送到以下URL

http://api.stackexchange.com/2.0/questions/12444652?pagesize=30&key=6AU78DZ)GcdjNjAszYmTLQ((&filter=!6G7RPxWUNTleV&site=stackoverflow.com&callback=apiCallbacks[%22stackoverflow.com%22]&_=1347774461814

该GET的回应是

apiCallbacks["stackoverflow.com"]({"items":[{"question_id":12444652,"title":"How to make a link system link stackoverw"}]});

从那个可以检索标题。希望这会有所帮助。

答案 1 :(得分:4)

我认为这是一个太多的信息,不能发表评论,所以我只是把它作为一个答案。该程序只是简单地检索该页面上title元素的值。

所以这是基本过程:

  1. 程序执行正则表达式(或其他)搜索字符串中的URL。
  2. 该程序获得该URL。
  3. 程序用相关的html代码替换url:('foo'等)
  4. 更新:这是用PHP做第3步的方法:

    $myURL = 'http://www.google.com';
    preg_match('/<title>(.+)<\/title>/',file_get_contents($myURL),$matches);
    $title = $matches[1];
    

    (来自here