php - 使用 Bitly API 缩短 URL

标签 php url url-shortener

我在 this 上找到了下面的 Bitly API 代码地点。我很难让它创建然后为名为 $fullurl 的变量回显一个稍微缩短的 URL。我该怎么做?

编辑:没有出现错误代码,只是没有显示稍微缩短的 URL。

编辑 2: var_dump($response); 返回 NULL

编辑 3: 我确实用我的替换了 API 登录名和 key 。

编辑 4: 我在原始教程的一条评论中找到了答案。我的问题对所有 PHP 专家来说太基础了:我只需要在末尾添加 echo bitly_shorten($fullurl);

提前致谢

约翰

function bitly_shorten($url)
{
    $query = array(
        "version" => "2.0.1",
        "longUrl" => $url,
        "login" => API_LOGIN, // replace with your login
        "apiKey" => API_KEY // replace with your api key
    );

    $query = http_build_query($query);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://api.bit.ly/shorten?".$query);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    $response = curl_exec($ch);
    curl_close($ch);

    $response = json_decode($response);

    if($response->errorCode == 0 && $response->statusCode == "OK") {
        return $response->results->{$url}->shortUrl;
    } else {
        return null;
    }
}

最佳答案

将其更改为:

function bitly_shorten($url){
  $query = array(
    "version" => "2.0.1",
    "longUrl" => $url,
    "login" => API_LOGIN, // replace with your login
    "apiKey" => API_KEY // replace with your api key
  );

  $query = http_build_query($query);

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, "http://api.bitly.com/v3/shorten?".$query);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

  $response = curl_exec($ch);
  curl_close($ch);

  $response = json_decode($response);
  if( $response->status_txt == "OK") {        
    return $response->data->url;
  } else {
    return null;
  }
}

关于php - 使用 Bitly API 缩短 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5799392/

相关文章:

c# - 在给定偏移量的情况下生成暴力字符串?

php - 计算重复项 WHERE id=?

php - 如果关系不存在,Laravel 会得到默认值的 Eloquent 关系吗?

javascript - 如何在 Javascript 中创建查询参数?

java - 如何通过客户端 Java 代码获取 Google Web Toolkit 中的当前 URL?

python - 生成 Twitter 的共享消息和缩短的 URL

c# - 类似 YouTube 的 GUID

php - 选择 COUNT() 与 mysql_num_rows();

php - 我搞砸了我的where子句吗?得到意想不到的结果

python - 从 URL 响应中获取授权码 - Python