Mass URL shortener in PHP, TinyURL and list of 230 url shortening services

Discussion in 'Programming' started by dreadpixel, Dec 5, 2016.

  1. dreadpixel

    dreadpixel Jr. VIP Jr. VIP

    Joined:
    Jul 27, 2010
    Messages:
    1,519
    Likes Received:
    598
    Occupation:
    bot developer, automation, growth hacking
    Location:
    Land of Oz
    Home Page:
    Hey fellas, I’ve got this little exercise I did to do a mass url shortener using TinyURL API as an example, also I added a big list of API’s for shortening URLs like Bit.ly, ******* and more.

    You might not have any use for this, but its good for education, we didn’t use any cURL because the API is opened and with a simple file_get_contents we can see the result when we input the url to the main gate of this API, check it out:

    Code:
    // we first create the function to not repeat ourselves
    function tinyurl($longUrl) {
    // We use the tiny_url API
    $short_url= file_get_contents('http://***********/api-create.php?url=' . $longUrl);
    return $short_url; // an obviously return the data so you assign it to a variable
    }
    //we specify the file which is in same folder of this script
    // make sure to paste line by line all the URLs in links.txt
    $filename = 'links.txt';
    // we open the file into variable
    $links = file($filename);
    $links_bucket = array(); // create our array before.
    // we will iterate the $links variable which assigned to file()
    foreach($links as $link) {
    // time to use the function that returns the shortened URL 
    $tinyURL = tinyurl($link);
    // and we push into the array that we will var_dump
    array_push($links_bucket, $tinyURL);
    }
    
    var_dump($links_bucket);
    
    And here some sources for shortening URLs:
    So with this example you can create your own functions either using file_get_contents for open API’s or cURL making POST request with proper credentials to get the output.

    [​IMG]

    So here is the promised list of URL shortener services, I don’t know if some of them might help to cloak or anything, you will have to try it:

    • bit.ly
    • goo.gl
    • ***********
    • *****
    • cli.gs
    • pic.gd tweetphoto
    • DwarfURL.com
    • ow.ly
    • yfrog.com
    • migre.me
    • ff.im
    • *******
    • url4.eu
    • tr.im
    • twit.ac
    • su.pr
    • twurl.nl
    • ***********
    • BudURL.com
    • short.to
    • ping.fm
    • Digg.com
    • post.ly
    • Just.as
    • .tk
    • bkite.com
    • snipr.com
    • flic.kr
    • loopt.us
    • doiop.com
    • twitthis.com
    • htxt.it
    • AltURL.com
    • RedirX.com
    • DigBig.com
    • short.ie
    • u.mavrev.com
    • kl.am
    • wp.me
    • u.nu
    • rubyurl.com
    • om.ly
    • linkbee.com
    • Yep.it
    • posted.at
    • xrl.us
    • metamark.net
    • sn.im
    • hurl.ws
    • eepurl.com
    • idek.net
    • urlpire.com
    • chilp.it
    • moourl.com
    • snurl.com
    • ******
    • lin.cr
    • EasyURI.com
    • zz.gd
    • ur1.ca
    • URL.ie
    • adjix.com
    • twurl.cc
    • s7y.us shrinkify
    • EasyURL.net
    • atu.ca
    • sp2.ro
    • Profile.to
    • ub0.cc
    • minurl.fr
    • cort.as
    • fire.to
    • 2tu.us
    • twiturl.de
    • to.ly
    • BurnURL.com
    • nn.nf
    • clck.ru
    • notlong.com
    • thrdl.es
    • spedr.com
    • vl.am
    • miniurl.com
    • virl.com
    • PiURL.com
    • 1url.com
    • gri.ms
    • tr.my
    • Sharein.com
    • urlzen.com
    • fon.gs
    • Shrinkify.com
    • ri.ms
    • b23.ru
    • Fly2.ws
    • xrl.in
    • Fhurl.com
    • wipi.es
    • korta.nu
    • shortna.me
    • fa.b
    • WapURL.co.uk
    • urlcut.com
    • 6url.com
    • abbrr.com
    • SimURL.com
    • klck.me
    • x.se
    • 2big.at
    • url.co.uk
    • ewerl.com
    • inreply.to
    • TightURL.com
    • a.gg
    • tinytw.it
    • zi.pe
    • riz.gd
    • hex.io
    • fwd4.me
    • bacn.me
    • shrt.st
    • ln-s.ru
    • tiny.pl
    • o-x.fr
    • StartURL.com
    • jijr.com
    • shorl.com
    • icanhaz.com
    • updating.me
    • kissa.be
    • hellotxt.com
    • pnt.me
    • nsfw.in
    • xurl.jp
    • yweb.com
    • urlkiss.com
    • QLNK.net
    • w3t.org
    • lt.tl
    • twirl.at
    • zipmyurl.com
    • urlot.com
    • a.nf
    • hurl.me
    • URLHawk.com
    • Tnij.org
    • 4url.cc
    • firsturl.de
    • Hurl.it
    • sturly.com
    • shrinkster.com
    • ln-s.net
    • go2cut.com
    • liip.to
    • shw.me
    • XeeURL.com
    • liltext.com
    • lnk.gd
    • xzb.cc
    • linkbun.ch
    • href.in
    • urlbrief.com
    • 2ya.com
    • safe.mn
    • shrunkin.com
    • bloat.me
    • krunchd.com
    • minilien.com
    • ShortLinks.co.uk
    • qicute.com
    • rb6.me
    • urlx.ie
    • pd.am
    • go2.me
    • tinyarro.ws
    • tinyvid.io
    • lurl.no
    • ru.ly
    • lru.jp
    • rickroll.it
    • togoto.us
    • ClickMeter.com
    • hugeurl.com
    • tinyuri.ca
    • shrten.com
    • shorturl.com
    • Quip-Art.com
    • urlao.com
    • a2a.me
    • tcrn.ch
    • goshrink.com
    • DecentURL.com
    • decenturl.com
    • zi.ma
    • 1link.in
    • sharetabs.com
    • shoturl.us
    • fff.to
    • hover.com
    • lnk.in
    • jmp2.net
    • dy.fi
    • urlcover.com
    • 2pl.us
    • tweetburner.com
    • u6e.de
    • xaddr.com
    • gl.am
    • dfl8.me
    • go.9nl.com
    • gurl.es
    • C-O.IN
    • TraceURL.com
    • liurl.cn
    • MyURL.in
    • urlenco.de
    • ne1.net
    • buk.me
    • rsmonkey.com
    • cuturl.com
    • turo.us
    • sqrl.it
    • iterasi.net
    • tiny123.com
    • EsyURL.com
    • urlx.org
    • IsCool.net
    • twitterpan.com
    • GoWat.ch
    • poprl.com
    • njx.me
    Try it yourself and let me know how it worked. Im done by today I might come with other stuff later, Im on my PHP spree, I might change soon. So don’t question why I haven’t used other languages. I just feel like it.
     
  2. tasburrfoot

    tasburrfoot Regular Member

    Joined:
    Dec 16, 2008
    Messages:
    332
    Likes Received:
    153
    Cleaner way of doing it. Also, adding associative array so you can tell which short_url belongs to which original link.

    PHP:
    <?PHP

    $filename 
    'links.txt';

    $links file($filename);
    $links_bucket = array();

    foreach(
    $links as $link) {
       
        
    $links_bucket[$link] = file_get_contents('http://***********/api-create.php?url=' $link);
    }

    var_dump($links_bucket);

    ?>
     
  3. tasburrfoot

    tasburrfoot Regular Member

    Joined:
    Dec 16, 2008
    Messages:
    332
    Likes Received:
    153
    Even better yet, with a form input if someone wanted to actually host it somewhere. Otherwise the above solution is the option for CLI.
    PHP:
    <?PHP

    if(isset($_POST['submit'])){
        
    $links preg_split("/\\r\\n|\\r|\\n/"$_POST['urls']);
        
        foreach(
    $links as $link){
            
    $newlink file_get_contents('http://***********/api-create.php?url=' $link);
            echo(
    $link ' => ' $newlink.'<br>');
        }
    }else{
        echo(
    '
        1 URL per line:<br>
        <form action="" method="POST" name="form">
        <textarea name="urls" rows="20" cols="75" form="form">
        </textarea>
        <input type="submit" name="submit" value="submit">
        </form>
        '
    );
    }
    ?>
     
  4. mangoman

    mangoman Regular Member

    Joined:
    Sep 29, 2010
    Messages:
    477
    Likes Received:
    86
    all of these url redirects are working?