Spaces:
No application file
No application file
File size: 965 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
<?php
namespace Mautic\EmailBundle\Helper;
class UrlMatcher
{
public static function hasMatch(array $urlsToCheckAgainst, $urlToFind): bool
{
$urlToFind = self::sanitizeUrl($urlToFind);
foreach ($urlsToCheckAgainst as $url) {
$url = self::sanitizeUrl($url);
if (preg_match('/'.preg_quote($url, '/').'/i', $urlToFind)) {
return true;
}
}
return false;
}
/**
* @return mixed|string
*/
private static function sanitizeUrl($url)
{
// Handle escaped forward slashes as BC
$url = str_replace('\\/', '/', $url);
// Ignore ending slash
$url = rtrim($url, '/');
// Ignore http/https
$url = str_replace(['http://', 'https://'], '', $url);
// Remove preceding //
if (str_starts_with($url, '//')) {
$url = str_replace('//', '', $url);
}
return $url;
}
}
|