1. Advertising
    y u no do it?

    Advertising (learn more)

    Advertise virtually anything here, with CPM banner ads, CPM email ads and CPC contextual links. You can target relevant areas of the site and show ads based on geographical location of the user if you wish.

    Starts at just $1 per CPM or $0.10 per CPC.

Displaying domain name only in PHP without www. or / or anything else.. ?

Discussion in 'PHP' started by ppcwiz, Sep 2, 2013.

  1. #1
    The code below displays: domain.com/ but I would like to display just domain.com without the /

    $hostname = $_SERVER['SERVER_NAME'];
     $hostname = str_replace('www.', '', $hostname);
     echo $hostname . htmlentities($_SERVER['REQUEST_URI']);
    Code (markup):
    Also how would I display domain.com in all uppercase letters; DOMAIN.COM

    Thanks in advance!
     
    ppcwiz, Sep 2, 2013 IP
  2. Arick unirow

    Arick unirow Acclaimed Member

    Messages:
    719
    Likes Received:
    298
    Best Answers:
    30
    Trophy Points:
    500
    #2
    You may wish to use 'STRTOUPPER' function.
    Read about it HERE.
    I am not an expert in PHP but I think this code could help you:
    Code A:
    <?
    $hostname = $_SERVER['SERVER_NAME'];
    $hostname = strtoupper(str_replace('www.', '', $hostname));
    echo $hostname . htmlentities($_SERVER['REQUEST_URI']);
    ?>
    PHP:
    Hints: Adding color and Bold is recommended. You can use the PHP or via CSS.
    You may use this code for better 'visibility'
    Example:
    Code A:
    DOMAIN.COM/myarticle.html
    (for URL domain.com/myarticle.html)

    Code B:
    <?
    $hostname = $_SERVER['SERVER_NAME'];
    $hostname = strtoupper(str_replace('www.', '', $hostname));
    echo '<b><font color="#0000FF">'.$hostname.'</b></font>' . htmlentities($_SERVER['REQUEST_URI']);
    ?>
    PHP:
    Both codes above will give good result to show the real URL (with slash '/' remain intact.)
    Example:
    Code B:
    DOMAIN.COM/myarticle.html
    (for URL domain.com/myarticle.html).

    If you want to remove slash, you just need to remove/uncomment "['REQUEST_URI']" from your code (will only display domain name without slash. All 'complete url' will be gone).
    Code C:
    <?
    $hostname = $_SERVER['SERVER_NAME'];
    $hostname = strtoupper(str_replace('www.', '', $hostname));
    $remove = array("/");
    echo "".htmlspecialchars(strip_tags(str_replace($remove,"",($hostname))))." ";
    ?>
    
    PHP:
    Example:
    Code C:
    DOMAIN.COM
    (for whatever URL such as domain.com/myarticle.html, etc.)

    The code below will strip all slash '/' while keeping the url intact. This code could be optimized via merging/combining code. To strip anything, just add the words/codes in 'REMOVE'. Example, adding "/",".html" will remove '/' and '.html' completely.
    Code D:
    <?
    $hostname = $_SERVER['SERVER_NAME'];
    $hostname = strtoupper(str_replace('www.', '', $hostname));
    $remove = array("/");
    echo '<b><font color="#0000FF">'.htmlspecialchars(strip_tags(str_replace($remove,"",($hostname . htmlentities($_SERVER['REQUEST_URI']))))).'</b></font>';
    ?>
    
    PHP:
    Example:
    Code D:
    DOMAIN.COMmyarticles.html
    (for URL domain.com/myarticle.html)

    From the example above, there is good reason why I recommend Code B and Code C. Code B will make the URL looks great while keeping it intact. Code C will strip '/' and discard any url (only show domain name).
     
    Last edited: Sep 3, 2013
    Arick unirow, Sep 3, 2013 IP
    ppcwiz likes this.
  3. ppcwiz

    ppcwiz Well-Known Member

    Messages:
    577
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    108
    #3
    Thank you Arick for providing a detailed explanation and various options. I just tried it and it worked perfectly.

    Now one last thing if anybody can help me with...

    I am trying to strip/not display the subdomain.

    So for example if url used to access website is http://subdomain.example.com/ is visited the code above still displays the example.domainname.com. I need to display just the domain name without the subdomain or anything else before/after it.

    Any thoughts/ideas?

    Thanks again!
     
    ppcwiz, Sep 3, 2013 IP
  4. Arick unirow

    Arick unirow Acclaimed Member

    Messages:
    719
    Likes Received:
    298
    Best Answers:
    30
    Trophy Points:
    500
    #4
    You may wish to try this code:
    Code 1:
    <?
    $hostname = $_SERVER['SERVER_NAME'];
    $remove = array("www.","subdomain.","other.");
    $hostname = strtoupper(str_replace($remove, "", $hostname));
    echo '<b><font color="#0000FF">'.$hostname . htmlentities($_SERVER).'</b></font>';
    ?>
    PHP:
    Please add any of your subdomain in the '$remove' above. You may add "www.", "www1.", "download." and any subdomain which belong to the domain.
    Example:
    EXAMPLE.COM

    Code 2:
    <?
    $hostname = $_SERVER['SERVER_NAME'];
    $remove = array("www.","subdomain.","other.");
    $hostname = strtoupper(str_replace($remove, "", $hostname));
    echo $hostname . htmlentities($_SERVER);
    ?>
    PHP:
    Example:
    EXAMPLE.COM

    I prefer code 3 as it is quite simple.
    Code 3:
    <?
    $hostname = $_SERVER['SERVER_NAME'];
    $remove = array("www.","subdomain.","other.");
    $hostname = strtoupper(str_replace($remove, "", $hostname));
    echo $hostname;
    ?>
    PHP:
    Example:
    EXAMPLE.COM

    Alternatively, you may use the simplest code below.
    Code 4:
    <?
    echo 'EXAMPLE.COM';
    ?>
    PHP:
    Example:
    EXAMPLE.COM

    Code 1 is good as it add color and bold. Code 2 is almost same minus bold and color. Code 4 is very simple as it use less query and didn't check anything. It only print what is available in code. Use code 4 only if the domain is already 'fixed'.
    I prefer Code 3 as it quite simple and could be implemented in any domain.
     
    Last edited: Sep 3, 2013
    Arick unirow, Sep 3, 2013 IP
  5. ppcwiz

    ppcwiz Well-Known Member

    Messages:
    577
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    108
    #5
    Thanks again... But what if I am dealing with wildcard sub-domains (unknown ones)

    It can be dkjfdsf.domain.com or 934843939.93938.domain.com for example... Is there a way to strip out and remove everything and just display the domain.com itself and nothing else?
     
    ppcwiz, Sep 3, 2013 IP
  6. Arick unirow

    Arick unirow Acclaimed Member

    Messages:
    719
    Likes Received:
    298
    Best Answers:
    30
    Trophy Points:
    500
    #6
    Try this code:
    <?php
    $domain = $_SERVER['HTTP_HOST'];
    $domain = explode('.', $domain);
    $domain = array_reverse($domain);
    $domain = "$domain[1].$domain[0]";
    echo strtoupper($domain);
    ?>
    PHP:
    I didn't test the code but I think it may work for you.
     
    Arick unirow, Sep 3, 2013 IP
  7. cLogik

    cLogik Active Member

    Messages:
    159
    Likes Received:
    28
    Best Answers:
    0
    Trophy Points:
    90
    #7
    <?
          $server = strtoupper(str_replace('www', '', $_SERVER['SERVER_NAME']));
          $bits = explode('.', $server);
          echo $bits[1].'.'.$bits[2];
    ?>
    PHP:
    An alternative that doesnt require you to define the subdomain.
     
    cLogik, Sep 3, 2013 IP
    Arick unirow likes this.
  8. Arick unirow

    Arick unirow Acclaimed Member

    Messages:
    719
    Likes Received:
    298
    Best Answers:
    30
    Trophy Points:
    500
    #8
    The code would work exactly as the last code I have posted above.

    Your code could be simplified
    <?
    $server = strtoupper($_SERVER['SERVER_NAME']);
    $bits = explode('.', $server);
    echo $bits[1].'.'.$bits[2];
    ?>
    PHP:
     
    Arick unirow, Sep 3, 2013 IP
  9. cLogik

    cLogik Active Member

    Messages:
    159
    Likes Received:
    28
    Best Answers:
    0
    Trophy Points:
    90
    #9
    Hey,

    No, my code doesn't do the same as yours. Yours is better.

    OP: Ignore everything said in the thread and stick with Arick's last code.

    <?php
    $domain = $_SERVER['HTTP_HOST'];
    $domain = explode('.', $domain);
    $domain = array_reverse($domain);
    $domain = "$domain[1].$domain[0]";
    echo strtoupper($domain);
    ?>
    PHP:
    It does exactly what you need :)

    Arick: Thank you for shortening my code, sometimes i write before i think. array_reverse() is also new to me. Learn something new everyday :) :p
     
    cLogik, Sep 3, 2013 IP
  10. Arick unirow

    Arick unirow Acclaimed Member

    Messages:
    719
    Likes Received:
    298
    Best Answers:
    30
    Trophy Points:
    500
    #10
    Better or not, it doesn't matter for me (as long as it work as expected). :)
    It is great pleasure to meet you in this forum.

    For OP: Use any code which suitable for you. :)

    Arick.
     
    Arick unirow, Sep 3, 2013 IP
  11. ppcwiz

    ppcwiz Well-Known Member

    Messages:
    577
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    108
    #11
    Code worked perfectly. Awesome!! Thanks again :)
     
    ppcwiz, Sep 3, 2013 IP