Skip to Content

valid_hostname_regex()

Creates a regular expression for valid hostnames.

PHP April 28, 2017

Usage

PHP
nebula()->valid_hostname_regex($domains)

Parameters

$domains
(Optional) (Array) An array of domains
Default: Current domain

Request or provide clarification »

Additional Notes

This can be used for Google Analytics filters.

Source File

Located in /libs/Utilities/Utilities.php on line 361.

1 Hook

Find these filters and actions in the source code below to hook into them. Use do_action() and add_filter() in your functions file or plugin.

Filters
"hostname_regex"
Need a new filter hook? Request one here.

Actions
This function has no action hooks available. Request one?

PHP
        public function valid_hostname_regex($domains=null){
            $domains = ( !empty($domains) && is_array($domains) )? $domains : array($this->url_components('domain')); //If a domain is not passed, use the current domain

            //Add hostnames from Nebula Options
            if ( $this->get_option('hostnames') ){
                $domains = array_merge($domains, explode(',', str_replace(' ', '', esc_html($this->get_option('hostnames')))));
            }

            $domains = array_merge($domains, array('googleusercontent.com', 'googleweblight.com')); //Add default safe valid domains to the list
            $all_domains = apply_filters('hostname_regex', $domains); //Allow other functions/plugins to add/remove domains from the array

            $all_domains = preg_filter('/^/', '.*', $all_domains); //Add wildcard prefix to all domains
            $all_domains = str_replace(array(' ', '.', '-'), array('', '\.', '\-'), $all_domains); //Final regex should be: \.*gearside\.com|\.*gearsidecreative\.com
            $all_domains = array_unique($all_domains); //De-dupe the domain list

            return implode("|", $all_domains); //Return a valid hostname regex string
        }

Override

This function can not be short-circuited with an override filter. Request one?