I need a php function which produce a pure domain name from URL. So this function must be remove http://
, www
and /
(slash) parts from URL if these parts exists. Here is example input and outputs: Input - > http://www.google.com/ | Output -> google.com
Input - > http://google.com/ | Output -> google.com
Input - > www.google.com/ | Output -> google.com
Input - > google.com/ | Output -> google.com
Input - > google.com | Output -> google.com
I checked parse_url
function, but doesn't return what I need. Since, I'm beginner in PHP, it was difficult for me. If you have any idea, please answer.
Thanx in advance.
To remove http:// or https:// from a url, call the replace() method with the following regular expression - /^https?:\/\// and an empty string as parameters. The replace method will return a new string, where the http:// part is removed. Copied!
Then preg_replace('{/$}', '', $_SERVER['REQUEST_URI']) will remove the slash and hand over to header() to redirect. The exit() function is important to stop any further code execution.
$input = 'www.google.co.uk/'; // in case scheme relative URI is passed, e.g., //www.google.com/ $input = trim($input, '/'); // If scheme not included, prepend it if (!preg_match('#^http(s)?://#', $input)) { $input = 'http://' . $input; } $urlParts = parse_url($input); // remove www $domain = preg_replace('/^www\./', '', $urlParts['host']); echo $domain; // output: google.co.uk
Works correctly with all your example inputs.
$str = 'http://www.google.com/'; $str = preg_replace('#^https?://#', '', rtrim($str,'/')); echo $str; // www.google.com
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With