public static UrlHelper::externalIsLocal($url, $base_url)
Determines if an external URL points to this installation.
Parameters
string $url: A string containing an external URL, such as "http://example.com/foo".
string $base_url: The base URL string to check against, such as "http://example.com/"
Return value
bool TRUE if the URL has the same domain and base path.
Throws
\InvalidArgumentException Exception thrown when a either $url or $bath_url are not fully qualified.
File
- core/lib/Drupal/Component/Utility/UrlHelper.php, line 245
Class
- UrlHelper
- Helper class URL based methods.
Namespace
Drupal\Component\Utility
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public static function externalIsLocal( $url , $base_url ) { $url_parts = parse_url ( $url ); $base_parts = parse_url ( $base_url ); if ( empty ( $base_parts [ 'host' ]) || empty ( $url_parts [ 'host' ])) { throw new \InvalidArgumentException( 'A path was passed when a fully qualified domain was expected.' ); } if (!isset( $url_parts [ 'path' ]) || !isset( $base_parts [ 'path' ])) { return (!isset( $base_parts [ 'path' ]) || $base_parts [ 'path' ] == '/' ) && ( $url_parts [ 'host' ] == $base_parts [ 'host' ]); } else { // When comparing base paths, we need a trailing slash to make sure a // partial URL match isn't occurring. Since base_path() always returns // with a trailing slash, we don't need to add the trailing slash here. return ( $url_parts [ 'host' ] == $base_parts [ 'host' ] && stripos ( $url_parts [ 'path' ], $base_parts [ 'path' ]) === 0); } } |
Please login to continue.