1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

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

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

  1. rodvan

    rodvan Jr. VIP Jr. VIP

    Joined:
    Jul 27, 2010
    Messages:
    1,313
    Likes Received:
    495
    Occupation:
    developer, marketing, automation, machine learning
    Location:
    Wizard of Bots
    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.**
    • 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:
    323
    Likes Received:
    152
    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:
    323
    Likes Received:
    152
    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:
    472
    Likes Received:
    84
    all of these url redirects are working?