+ 10

How to make a url shortener using php?

Please help me... This maybe offtopic but please tell me how this works. I have been willing to make a url shortener using php. But i dont know where to start. After reading some articles, I found out that I should make a database, when a person comes to the short url, php should search database and find where to go. But in this case the url people get will be something like this: www.mysite.com/short.php?key="atom" Here the atom is the shortened url. But i want it to be like this: www.mysite.com/atom Here there is no extension named php also there is no "?". But I dont how to do THIS. Please answer if you know anything related to this, because that could help solve my problem

8th Oct 2020, 2:52 PM
Steve Sajeev
Steve Sajeev - avatar
8 Réponses
+ 6
Steve Sajeev here is one of many examples to help get you started https://nomadphp.com/blog/64/creating-a-url-shortener-application-in-php-mysql there are many other options
8th Oct 2020, 3:12 PM
BroFar
BroFar - avatar
+ 4
Thanks, BroFar
8th Oct 2020, 3:15 PM
Steve Sajeev
Steve Sajeev - avatar
+ 3
Thanks đ—©đ—»đ—»đ—źđ—¶ . I guess I'll have to learn more about htaccess.
8th Oct 2020, 4:49 PM
Steve Sajeev
Steve Sajeev - avatar
+ 3
This is a great idea Joshua Schaeffer .
9th Oct 2020, 5:01 PM
Steve Sajeev
Steve Sajeev - avatar
+ 1
Hi, I implemented this using php with no database needed. Each time I create a directory based from the shortened URL and then added a single file called index.php with a redirect to the user specified URL. You can see it in action here https://joshuaschaeffer.work/s/ I will also post the 2 php files I used. Hopefully this helps and maybe gives you some ideas!
9th Oct 2020, 4:19 PM
Joshua Schaeffer
+ 1
index.php <!DOCTYPE html> <html> <body> <h1>URL Shortener</h1> <form action="./generate.php" method="post"> <label for="shortened_url_label">New shortened URL: https://joshuaschaeffer.work/s/ </label><input type="text" id="shortened_url" name="shortened_url" value=""><br><br> <label for="full_url_label">Redirect to this URL: </label><input type="text" id="full_url" name="full_url" value=""><br><br> <input type="submit" value="Submit"> </form> </body> </html> generate.php <?php $full_url = $_POST['full_url']; $shortened_url = $_POST['shortened_url']; if(is_dir($shortened_url)) { echo "Shortened URL already in use!"; } else { //make the directory based on the shortened url mkdir($shortened_url, 0777, true); //add index.php file in /shorted_url directory //this way we can simply link to website.com/shortened_url $file_handle = fopen($shortened_url . "/index.php", "x+"); //prepare content to write to index.php //simple redirect to whatever url is specified $write_to_file = "<?php header(" . "\"Location: " . $full_url . "\"" . "); ?>"; fwrite($file_handle, $write_to_file); fclose($file_handle); echo $full_url . " successfully mapped to " . "/s/" . $shortened_url; } ?>
9th Oct 2020, 4:20 PM
Joshua Schaeffer