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
Getting Started with Electron
How to Serve Static Files with Nginx and Docker
How to Set Up Cron Jobs in Linux
How to deploy a PHP app using Docker
How to deploy a MySQL Server using Docker
Getting Started with Sass
Learn how to use v-model with a custom Vue component
Build a Real-Time Chat App with Node, Express, and Socket.io
Getting Started with Moment.js
Setting Up Stylus CSS Preprocessor
Getting Started with Vuex: Managing State in Vue
