Daniel Brown wrote: > On 6/6/07, Brad Fuller <bfuller@xxxxxxxxxxxxxxxx> wrote: >> Hey guys, >> >> I'm faced with an interesting problem, and wondering if there's an >> easy solution. >> >> I need to strip out a domain name from a URL, and ignore subdomains >> (like www) >> >> I can use parse_url to get the hostname. And my first thought was to >> take the last 2 segments of the hostname to get the domain. > So if the >> URL is http://www.example.com/ >> Then the domain is "example.com." If the URL is >> http://example.org/ then the domain is "example.org." >> >> This seemed to work perfectly until I come across a URL like >> http://www.example.co.uk/ My script thinks the domain is "co.uk." >> >> So I added a bit of code to account for this, basically if the 2nd to >> last segment of the hostname is "co" then take the last 3 segments. >> >> Then I stumbled across a URL like http://www.example.com.au/ >> >> So it occurred to me that this is not the best solution, unless I >> have a definitive list of all exceptions to go off of. >> >> Does anyone have any suggestions? >> >> Any advice is much appreciated. >> >> Thanks, >> Brad >> >> -- >> PHP General Mailing List (http://www.php.net/) To unsubscribe, >> visit: http://www.php.net/unsub.php >> >> > > Well, it's not very clean, but if you just need to remove > the subdomain/CNAME from the domain.... > > <? > $hostname = parse_url($_SERVER['SERVER_NAME']); > $domsplit = explode('.',$hostname['path']); > for($i=1;$i<count($domsplit);$i++) { > $i == (count($domsplit) - 1) ? $domain .= $domsplit[$i] : > $domain .= $domsplit[$i]."."; } > echo $domain; >> > > There's probably a much better way to do it, but in the > interest of a quick response, that's one way. > > -- > Daniel P. Brown > [office] (570-) 587-7080 Ext. 272 > [mobile] (570-) 766-8107 Dan, Yes, that's basically what my code already does. The problem is that what if the url is "http://yahoo.co.uk/" (note the lack of a subdomain) Your script thinks that the domain is "co.uk". Just like my existing code does. So we can't count on taking the last 2 segments. And we can't count on ignoring the first segment. (The subdomain could be anything, not just www) Thx, Brad -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php