Tools\Model\Table\Table::validateUrl PHP Method

validateUrl() public method

Options: - allowEmpty TRUE/FALSE (TRUE: if empty => return TRUE) - required TRUE/FALSE (TRUE: overrides allowEmpty) - autoComplete (default: TRUE) - deep (default: TRUE)
public validateUrl ( array | string $url, array $options = [], array $context = [] ) : boolean
$url array | string Full URL starting with http://...
$options array
$context array
return boolean Success
    public function validateUrl($url, array $options = [], array $context = [])
    {
        if (!$url) {
            if (!empty($options['allowEmpty']) && empty($options['required'])) {
                return true;
            }
            return false;
        }
        if (!isset($options['autoComplete']) || $options['autoComplete'] !== false) {
            $url = $this->_autoCompleteUrl($url);
        }
        if (!isset($options['strict']) || $options['strict'] !== false) {
            $options['strict'] = true;
        }
        // validation
        if (!Validation::url($url, $options['strict']) && env('REMOTE_ADDR') && env('REMOTE_ADDR') !== '127.0.0.1') {
            return false;
        }
        // same domain?
        if (!empty($options['sameDomain']) && env('HTTP_HOST')) {
            $is = parse_url($url, PHP_URL_HOST);
            $expected = env('HTTP_HOST');
            if (mb_strtolower($is) !== mb_strtolower($expected)) {
                return false;
            }
        }
        if (isset($options['deep']) && $options['deep'] === false) {
            return true;
        }
        return $this->_validUrl($url);
    }