public static function full_relative_path($base, $url) { $dict = parse_url($url); if (isset($dict['path'])) { $result = AmberNetworkUtils::clean_up_path(join('/', array($base, $dict['path']))); } else { $result = $base; } $result .= isset($dict['query']) ? '?' . $dict['query'] : ''; return $result; }
public function testCleanUpPathString() { $this->assertEquals("common.css", AmberNetworkUtils::clean_up_path("../common.css")); $this->assertEquals("_v_1.0.32/personal/common.css", AmberNetworkUtils::clean_up_path("_v_1.0.32/personal/common.css")); $this->assertEquals("_v_1.0.32/personal/common.css", AmberNetworkUtils::clean_up_path("_v_1.0.32/personal/photo/../common.css")); $this->assertEquals("_v_1.0.32/common.css", AmberNetworkUtils::clean_up_path("_v_1.0.32/personal/photo/../../common.css")); $this->assertEquals("common.css", AmberNetworkUtils::clean_up_path("_v_1.0.32/personal/photo/../../../../common.css")); }