My code is below. The URL shortening service works, but it doesn\'t when I insert my $POST
. Does anyone know how to fix this my looking at the code?
you are passing the php variable between the single quotes so it will not be parsed. pass it between double quotes like
$longUrl = "http://www.mysite.com/XXXXX/XX/$_POST['qrname']";
OR concatinate like this
$longUrl = 'http://www.mysite.com/XXXXX/XX/'.$_POST['qrname'];
Try as below
$longUrl = 'http://www.mysite.com/XXXXX/XX/'.$_POST['qrname'];
The above will work.
replace $longUrl = 'http://www.example.com/XXXXX/XX/$_POST['qrname']';
with the following
$longUrl = 'http://www.example.com/XXXXX/XX/{$_POST['qrname']}';
Don't have enough reputation points yet to comment, but I got this working fine by replacing the line:
echo 'Shortened URL is: '.$json->id;
with:
$shortLink = get_object_vars($json);
echo "Shortened URL is: ".$shortLink['id'];
It could be just my php installation, but the original line kept throwing a 500 Internal Error for me.
<?php
//URL Shortening Functions( Just copy & paste below code in your application)
function short_url($longUrl){
$apiKey = '******************'; // put your GOOGLE API SHORTENING KEY
$postData = array('longUrl' => $longUrl, 'key' => $apiKey);
$curlObj = curl_init();
$jsonData = json_encode($postData);
curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url?key='.$postData['key']);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
curl_setopt($curlObj, CURLOPT_POST, 1);
curl_setopt($curlObj, CURLOPT_POSTFIELDS, $jsonData);
$response = curl_exec($curlObj);
$json = json_decode($response);
curl_close($curlObj);
if(isset($json->error) || $json == null){
return $longUrl; // retrun same url in case of error or null response
}else{
return $json->id; // return shorted url
}
}
// use this function here
$longUrl = 'https://www.w3schools.com/';
echo short_url($longUrl); // print short url
// If you want to return short url to long url use below function
function long_url($shortUrl){
$apiKey = '***********'; // put your GOOGLE API SHORTENING Key
$params = array('shortUrl' => $shortUrl, 'key' => $apiKey,'projection' => "ANALYTICS_CLICKS");
$final_url = 'https://www.googleapis.com/urlshortener/v1/url?'.http_build_query($params);
$curlObj = curl_init($final_url);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
$response = curl_exec($curlObj);
$json = json_decode($response);
curl_close($curlObj);
if(isset($json->error) || $json == null){
return $shortUrl;
}else{
return $json->longUrl;
}
}
//Function Use here
echo "<br>"; // For next line
$shortUrl = ''; // put the short url generated from above function
echo long_url($shortUrl); // get long url
?>
$longUrl = "http://www.xxxxxxx.com";
$postData = array('longUrl' => $longUrl);
$jsonData = json_encode($postData);
//4
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url?key=yourappkey');
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
curl_setopt($curlObj, CURLOPT_POST, 1);
curl_setopt($curlObj, CURLOPT_POSTFIELDS, $jsonData);
//5
$response = curl_exec($curlObj);
$json = json_decode($response);
// echo "<pre>";
// print_r($json);exit;
//6
curl_close($curlObj);
//7
if(isset($json->error)){
echo $json->error->message;
}else{
echo $json->id;
}