2

我有一个小问题(我认为)。

我的网站生成一个链接和我想缩短的链接。

这是我的代码:

<?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_5aafdd2f8d67f78150e52ffbd0613519','json'); $link 它不会从上面的代码中获取链接,但如果我使用 google.nl 它可以工作。

有人可以看看我做错了什么吗?

谢谢!

4

1 回答 1

0

您正在尝试回显由单引号引起来的变量 $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');
于 2013-09-24T17:20:02.090 回答