Quantcast
Channel: Issues for Drupal core
Viewing all articles
Browse latest Browse all 291566

drupal_parse_url() fails to parse fragment from external url when query is not present

$
0
0

drupal_parse_url() does not correctly parse External URLs and fails to get the path, query and fragment.

Example code:

$url = 'http://drupal.org/?q=node/123456#comment-form';
$uri1 = drupal_parse_url($url);
var_dump($uri1);
$uri2 = parse_url($url);
var_dump($uri2);

Drupal core drupal_parse_url():

http://drupal.org/node/123456#comment-form - FAIL:

array(3) {
  ["path"]=> string(42) "http://drupal.org/node/123456#comment-form"
  ["query"]=> array(0) { }
  ["fragment"]=> string(0) ""
}

http://drupal.org/q=node/123456#comment-form - FAIL:

array(3) {
  ["path"]=> string(42) "node/123456"
  ["query"]=> array(0) { }
  ["fragment"]=> string(0) "comment-form"
}

PHP parse_url() splits it correctly:

array(5) {
  ["scheme"]=> string(4) "http"
  ["host"]=> string(10) "drupal.org"
  ["path"]=> string(1) "/"
  ["query"]=> string(13) "q=node/123456"
  ["fragment"]=> string(12) "comment-form"
}

Viewing all articles
Browse latest Browse all 291566

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>