diff options
Diffstat (limited to 'lib/lib_rss.php')
| -rw-r--r-- | lib/lib_rss.php | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/lib_rss.php b/lib/lib_rss.php index 52c986433..8a58d2124 100644 --- a/lib/lib_rss.php +++ b/lib/lib_rss.php @@ -74,15 +74,19 @@ function idn_to_puny($url) { return $url; } -function checkUrl($url) { +function checkUrl($url, $fixScheme = true) { + $url = trim($url); if ($url == '') { return ''; } - if (!preg_match('#^https?://#i', $url)) { - $url = 'http://' . $url; + if ($fixScheme && !preg_match('#^https?://#i', $url)) { + $url = 'https://' . ltrim($url, '/'); } + $url = idn_to_puny($url); //PHP bug #53474 IDN - if (filter_var($url, FILTER_VALIDATE_URL)) { + $urlRelaxed = str_replace('_', 'z', $url); //PHP discussion #64948 Underscore + + if (filter_var($urlRelaxed, FILTER_VALIDATE_URL)) { return $url; } else { return false; |
