zerig / url-parser
解析URL并与之交互的对象类。
v1.1.0
2020-05-05 16:26 UTC
Requires
- php: >=5.6.0
README
解析URL并启用更多操作的对象。
$GLOBALS["server_root"] = new \UrlParser\Url("root"); // set root folder as ROOT // BOTH variant are possile ↓ // during constructing URL obj, multiple slashes are transform to ONE $url = new \UrlParser\Url(["http", "/www.web.cz/root", "/aaa/bbb", "a.html", "?member=me&age=15", "#hashtag"]); $url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb//a.html?member=me&age=15#hashtag"); // special possibility for TEMPORARY files $url = new \UrlParser\Url('C:\xampp\tmp\php8C07.tmp', '\\'); $url->getScheme("string") => "http" $url->getHost("string") => "www.web.cz" $url->getRoot("string") => "root" $url->getPath("string") => "aaa/bbb/a.html" $url->getQuery("string") => "?member=me&age=15" $url->getFragment("string") => "hashtag"
makeItString($url_path)
$url_path [string || array of string]
正确格式化URL。您可以使用STRING或ARRAYofSTRINGS创建URL。此方法还会删除双斜杠。
makeItString("http://www.web.cz//aaa/bbb/a.html") makeItString(["http", "/www.web.cz/root", "/aaa/bbb", "a.html"]) getString() => "http://www.web.cz/root/aaa/bbb/a.html"
pop($times)
- $times [int] 几次
- @return [string / array of string] 被弹出
移除URL路径的最后部分。不仅仅是打印,而是删除!!!\n
$url = new \UrlParser\Url("http://www.web.cz//aaa/bbb/a.html"); $url->getString() => "http://www.web.cz/root/aaa/bbb/a.html" $popped = $url->pop(); $url->getString() => "http://www.web.cz/root/aaa/bbb" $popped => "a.html" $popped = $url->pop(3); $url->getString() => "http://www.web.cz" $popped => [ [0] => "bbb", [1] => "aaa" ]
shift($times)
$times [int] 几次
移除URL路径的第一部分。不仅仅是打印,而是删除!!!
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $url->getString() => "http://www.web.cz/root/aaa/bbb/a.html" $shifted = $url->shift(); $url->getString() => "http://www.web.cz/bbb/a.html" $shifted => "aaa" $shifted = $url->shift(3); $url->getString() => "http://www.web.cz" $shifted => [ [0] => "bbb", [1] => "a.html" ]
swap($from, $to)
$from [string] 要更改的URL路径部分
$to [string] 更改为这个
将URL路径的一部分更改为新的。
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $url->getString() => "http://www.web.cz/root/aaa/bbb/a.html" $url->swap("aaa", "ccc"); $url->getString() => "http://www.web.cz/ccc/bbb/a.html"
get....($exp)
$exp [string] 我们希望导出的形式
- getScheme() - 变量如何保存 [string | array of string | key array]
- getScheme("string") - 如何在URL中书写
- getScheme("array") - 在数组中 [array of string | key array]
"http://web.cz/aaa/bbb/c.html"
- getScheme() - 获取协议部分: "http"
- getHost() - 获取主机部分: "web.cz"
- getRoot() - 获取根部分: ["aaa"]
- getPath() - 获取路径部分: ["bbb", "a.html"]
- getQuery() - 获取查询部分: ["member" => "me", "age" => "15"]
- getFragment() - 获取哈希部分: "hashtag"
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $url->getString() => "http://www.web.cz/root/aaa/bbb/a.html"
$url->getHost() => "www.web.cz" $url->getHost("string") => "www.web.cz" $url->getHost("array") => [ [0] => "www.web.cz" ]
$url->getPath() => [ [0] => "ccc", [1] => "bbb", [2] => "a.html" ] $url->getPath("string") => "ccc/bbb/a.html" $url->getPath("array") => [ [0] => "ccc", [1] => "bbb", [2] => "a.html" ]
getString()
以字符串格式获取整个URL。
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $url->addPath("file"); // add PATH URL $url->addQuery(["name" => "jerome"]); // add Query in URL $url->getString() => "http://www.web.cz/root/aaa/bbb/a/file.html?name=jerome"
getDepth()
返回从根目录到所有文件夹的总数
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $url->getDepth() => 2 $url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a"); $url->getDepth() => 3
linkRoot()
返回路径,该路径将此URL返回到根目录
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $url->linkRoot() => "../../" $url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a"); $url->linkRoot() => "../../../"
addPath($add_part)
$add_part [string | array of strings] 添加到根部分。
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $url->addPath(["ccc", "ddd"]); $url->getPath("string") => "aaa/bbb/a/ccc/ddd.html" $url->getString() => "http://www.web.cz/root/aaa/bbb/a/ccc/ddd.html" $url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a"); $url->addPath(["ccc", "ddd"]); $url->getPath("string") => "aaa/bbb/a/ccc/ddd" $url->getString() => "http://www.web.cz/root/aaa/bbb/a/ccc/ddd"
beforePath($add_part)
$add_part [string | array of strings] 添加到根部分。
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $url->beforePath(["ccc", "ddd"]); $url->getPath("string") => "ccc/ddd/aaa/bbb/a.html" $url->getString() => "http://www.web.cz/root/ccc/ddd/aaa/bbb/a.html"
addQuery($add_part)
$add_part [key array] 添加到根部分。
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $url->addQuery(["name" => "jerome", "age=15"]); $url->getQuery("string") => "?name=jerome&age=15" $url->getString() => "http://www.web.cz/root/aaa/bbb/a.html?name=jerome&age=15" $url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html?member=me"); $url->addQuery(["name" => "jerome", "age=15"]); $url->getQuery("string") => "?member=me&name=jerome&age=15" $url->getString() => "http://www.web.cz/root/aaa/bbb/a.html?member=me&name=jerome&age=15"
hasExtension()
如果URL以文件结尾: ".../a.html",则返回1
如果URL以文件夹结尾: ".../a",则返回0
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $url->hasExtension() => 1 $url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a"); $url->hasExtension() => 0
getExtension()
获取URL的扩展名
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $url->getExtension() => "html"
removeExtension()
如果URL有扩展名 => ".html",则从路径中删除它
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $extension = $url->removeExtension(); $url->getString() => "http://www.web.cz/root/aaa/bbb/a" $extension => "html"
exist()
检查URL是否存在作为文件/文件夹
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $url->exist() => 1
isFolder()
检查URL是否存在作为文件夹
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $url->isFolder() => 0
isFile()
检查URL是否存在作为文件
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $url->isFile() => 1
remove...
$add_part [key array] 添加到根部分。
- removeScheme() - 删除协议部分: "http"
- removeHost() - 删除主机部分: "web.cz"
- removeRoot() - 删除根部分: ["aaa"]
- removePath() - 删除路径部分: ["bbb", "a.html"]
- removeQuery() - 删除查询部分: ["member" => "me", "age" => "15"]
- removeFragment() - 删除哈希部分: "hashtag"
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html?member=me&age=15"); $remove_part = $url->removeScheme(); $url->getString() => "www.web.cz/root/aaa/bbb/a.html" $remove_part => "http"
removePath($path_part)
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html"); $remove_part = $url->removePath(["aaa", "bbb"]); $url->getString() => "www.web.cz/root/a.html" $remove_part = [ [0] => "aaa", [1] => "bbb" ]
removeQuery($key_array)
$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html?member=me&age=15"); $remove_part = $url->removeQuery(["member"]); $url->getString() => "www.web.cz/root/aaa/bbb/a.html?age=15" $remove_part = [ ["member"] => "me" ]