Loading core/lib/Drupal/Component/Utility/UrlHelper.php +3 −2 Original line number Diff line number Diff line Loading @@ -200,9 +200,10 @@ public static function parse($url) { // appears in front of the '?' query argument delimiter. $scheme_delimiter_position = strpos($url, '://'); $query_delimiter_position = strpos($url, '?'); if ($scheme_delimiter_position !== FALSE && ($query_delimiter_position === FALSE || $scheme_delimiter_position < $query_delimiter_position)) { $fragment_delimiter_position = strpos($url, '#'); if ($scheme_delimiter_position !== FALSE && ($query_delimiter_position === FALSE || $scheme_delimiter_position < $query_delimiter_position) && ($fragment_delimiter_position === FALSE || $scheme_delimiter_position < $fragment_delimiter_position)) { // Split off the fragment, if any. if (str_contains($url, '#')) { if ($fragment_delimiter_position !== FALSE) { [$url, $options['fragment']] = explode('#', $url, 2); } Loading core/tests/Drupal/Tests/Component/Utility/UrlHelperTest.php +8 −0 Original line number Diff line number Diff line Loading @@ -376,6 +376,14 @@ public static function providerTestParse() { 'fragment' => 'footer', ], ], 'Malformed URL should not trigger PHP warnings' => [ "#/://#", [ 'path' => NULL, 'query' => [], 'fragment' => "/://#", ], ], ]; } Loading Loading
core/lib/Drupal/Component/Utility/UrlHelper.php +3 −2 Original line number Diff line number Diff line Loading @@ -200,9 +200,10 @@ public static function parse($url) { // appears in front of the '?' query argument delimiter. $scheme_delimiter_position = strpos($url, '://'); $query_delimiter_position = strpos($url, '?'); if ($scheme_delimiter_position !== FALSE && ($query_delimiter_position === FALSE || $scheme_delimiter_position < $query_delimiter_position)) { $fragment_delimiter_position = strpos($url, '#'); if ($scheme_delimiter_position !== FALSE && ($query_delimiter_position === FALSE || $scheme_delimiter_position < $query_delimiter_position) && ($fragment_delimiter_position === FALSE || $scheme_delimiter_position < $fragment_delimiter_position)) { // Split off the fragment, if any. if (str_contains($url, '#')) { if ($fragment_delimiter_position !== FALSE) { [$url, $options['fragment']] = explode('#', $url, 2); } Loading
core/tests/Drupal/Tests/Component/Utility/UrlHelperTest.php +8 −0 Original line number Diff line number Diff line Loading @@ -376,6 +376,14 @@ public static function providerTestParse() { 'fragment' => 'footer', ], ], 'Malformed URL should not trigger PHP warnings' => [ "#/://#", [ 'path' => NULL, 'query' => [], 'fragment' => "/://#", ], ], ]; } Loading