Table of Contents
You can easily create a URL shortener thanks to the service called TinyURL. In this post, we'll create a PHP script that will create a TinyURL from a long URL using their API.
TinyURL is a free service that allows you to create a short URL from a long URL. For example, it can turn:
BASHhttps://sabe.io/blog/php-create-tiny-url
into:
BASHhttps://tinyurl.com/yyh5vqnv
To interface with their API, we will use the cURL library. We will make a call to their API and get back the short URL.
The function get_tiny_url, looks like this:
PHPfunction get_tiny_url($url) {
$api_url = 'https://tinyurl.com/api-create.php?url=' . $url;
$curl = curl_init();
$timeout = 10;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $api_url);
$new_url = curl_exec($curl);
curl_close($curl);
return $new_url;
}
Give the get_tiny_url function the URL you want to shorten and it will return the shortened URL using TinyURL's API.
Here's an example of a whole script:
PHP<?php
function get_tiny_url($url) {
$api_url = 'https://tinyurl.com/api-create.php?url=' . $url;
$curl = curl_init();
$timeout = 10;
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $api_url);
$new_url = curl_exec($curl);
curl_close($curl);
return $new_url;
}
$tiny_url = get_tiny_url('https://sabe.io/blog/php-create-tiny-url');
echo $tiny_url;
?>
Here's the output:
BASHhttps://tinyurl.com/yyh5vqnv
Our PHP app calling the TinyURL API
Conclusion
We've created a PHP script that will create a TinyURL from a long URL using TinyURL's API. Hopefully, you can see how easy it is to create a URL shortener using PHP.
Thanks for reading!
Resources
Getting Started with TypeScript
How to Install Node on Windows, macOS and Linux
Managing PHP Dependencies with Composer
Getting Started with Svelte
Create an RSS Reader in Node
How to Serve Static Files with Nginx and Docker
How to Set Up Cron Jobs in Linux
How to deploy a .NET app using Docker
How to deploy a MySQL Server using Docker
How to deploy an Express app using Docker
Learn how to use v-model with a custom Vue component
Getting User Location using JavaScript's Geolocation API
