Do not remove last path segment unless hash or query are present.
This commit is contained in:
parent
52b94dd924
commit
fadbcd76e0
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* PHP implementation of the JSON-LD API.
|
* PHP implementation of the JSON-LD API.
|
||||||
* Version: 0.2.3
|
* Version: 0.2.4
|
||||||
*
|
*
|
||||||
* @author Dave Longley
|
* @author Dave Longley
|
||||||
*
|
*
|
||||||
|
@ -681,10 +681,12 @@ function jsonld_remove_base($base, $iri) {
|
||||||
// remove root from IRI
|
// remove root from IRI
|
||||||
$rel = jsonld_parse_url(substr($iri, strlen($root)));
|
$rel = jsonld_parse_url(substr($iri, strlen($root)));
|
||||||
|
|
||||||
// remove path segments that match
|
// remove path segments that match (do not remove last segment unless there
|
||||||
|
// is a hash or query)
|
||||||
$base_segments = explode('/', $base['normalizedPath']);
|
$base_segments = explode('/', $base['normalizedPath']);
|
||||||
$iri_segments = explode('/', $rel['normalizedPath']);
|
$iri_segments = explode('/', $rel['normalizedPath']);
|
||||||
while(count($base_segments) > 0 && count($iri_segments) > 0) {
|
$last = (isset($rel['query']) || isset($rel['fragment'])) ? 0 : 1;
|
||||||
|
while(count($base_segments) > 0 && count($iri_segments) > $last) {
|
||||||
if($base_segments[0] !== $iri_segments[0]) {
|
if($base_segments[0] !== $iri_segments[0]) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue