1

在这里初学者,人们。有人可以提出任何解决方案吗?我有一个用户输入的文本。首先,我检查文本是否有任何 url:

 $post = preg_replace('/https?:\/\/[\w\-\.!~?&+\*\'"(),\/]+/','<a class="post_link"          
 href="$0">$0</a>',$post);

之后,我需要检索该 url 并将其作为变量 ($url) 放入此函数:

 $short=make_bitly_url('$url','o_6sgltp5sq4as','R_f5212f1asdads1cee780eed00d2f1bd2fd794f','xml');

最后,回显 url 和用户的文本。提前感谢您的想法和批评。

我试过这样的事情:

 $post = preg_replace('/https?:\/\/[\w\-\.!~?&+\*\'"(),\/]+/e',$url,$post){
 $shorten = make_bitly_url($url,'o_6sgltpmm5sq4','R_f5212f11cee780ekked00d2f1bd2fd794f','json');
 return '<a class="post_link" href="$shorten">$shorten</a>';
 };

但即使对我来说,这看起来也是一种废话。

4

2 回答 2

1

以下是如何使用 PHP 中的 bit.ly API:

/* make a URL small */
function make_bitly_url($url,$login,$appkey,$format = 'xml',$version = '2.0.1')
{
    //create the URL
    $bitly = 'http://api.bit.ly/shorten?version='.$version.'&longUrl='.urlencode($url).'&login='.$login.'&apiKey='.$appkey.'&format='.$format;

    //get the url
    //could also use cURL here
    $response = file_get_contents($bitly);

    //parse depending on desired format
    if(strtolower($format) == 'json')
    {
        $json = @json_decode($response,true);
        return $json['results'][$url]['shortUrl'];
    }
    else //xml
    {
        $xml = simplexml_load_string($response);
        return 'http://bit.ly/'.$xml->results->nodeKeyVal->hash;
    }
}

/* usage */
$short = make_bitly_url('http://davidwalsh.name','davidwalshblog','R_96acc320c5c423e4f5192e006ff24980','json');
echo 'The short URL is:  '.$short; 

// returns:  http://bit.ly/11Owun

资料来源:大卫沃尔什文章


但是,如果您想创建自己的 URL 缩短系统(类似于 bit.ly——而且非常容易做到),这里有一个PHPacademy的 8 部分教程,介绍了如何做到这一点:

难度级别:初级/中级

每个视频大约十分钟。

第 1 部分 第 2 部分 第 3 部分 第 4 部分 第 5 部分 第 6 部分 第 7 部分 第 8 部分

于 2013-08-21T21:29:37.460 回答
1

Bitly 确实有一个 API 可供使用。您应该查看API 文档

于 2013-08-21T21:30:18.633 回答