在php中自动生成bit.ly-url是不起作用的


auto-generate bit.ly urls in php wont work

我有一个小问题(我想)。

我的网站生成了一个链接,我想缩短thad链接。

这是我的代码:

<?php
error_reporting(0);
include("config.php");
if(isset($_POST["sub"])) {
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br>";
  }
else
  {
    $r = rand(1,100000);
    $filename = $r . $_FILES["file"]["name"];
  if (file_exists("upload/" . $filename)) {
    echo "<center>";
      echo $_FILES["file"]["name"] . " already exists. Please Rename your file and try again.</center><br>";
  }
else
  {
  $link="$baseurl/upload/" . $filename;
  move_uploaded_file($_FILES["file"]["tmp_name"],
  "upload/" . $filename);
  echo "<center>Direct Download link: <a href='"$link'">$link</a></center><br>";
  }
 }
}
include("main.html");
?>

我想将"$link"的结果缩短为bit.ly。所以我做了一些研究,发现了这个有用的脚本:

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('$link','dsfser','R_5aafdd2f8d67f78150e52ffbd0613519','json');
echo 'The short URL is:  '.$short;  

所以我没有得到的是,如果我放在这行:make_bitly_url('>>$link<<<','dsfser','R_5aafdd2f8d67f78150e52fbd0613519','json')$链接它没有从上面的te代码中获取链接,但如果我使用google.nl,它就可以了。

有人能看看我做错了什么吗?

THANX!

您正试图回显被单引号包围的变量$link。

应该在字符串周围使用引号,而不是变量。然而,如果你使用双引号,你可以直接在其中回显变量,然而,就我个人而言,我建议你总是使用单引号,并用点分隔变量。

 <?php
 $var = 'variable';
 //echo string
 echo 'test this is a ';
 echo $var;
 echo '!';
 //previous 2 echos show: "test this is a variable!", however you could concatenate it like this:
 echo 'test this is a '.$var.'!';
 ?>

解决方案:

更改:

$short = make_bitly_url('$link','dsfser','R_5aafdd2f8d67f78150e52ffbd0613519','json');

至:

$short = make_bitly_url($link,'dsfser','R_5aafdd2f8d67f78150e52ffbd0613519','json');