zerig/url-parser 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

zerig/url-parser

Composer 安装命令:

composer require zerig/url-parser

包简介

class of object which parse url and can work with it.

README 文档

README

class which parse url and enable this URL for more operations.

$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]
Correct URL in right FORM. You can use STRING or ARRAYofSTRINGS to create url. This method also erase double slashes.

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] How many time
  • @return [string / array of string] What was popped

Remove last part of url PATH. NOT just print, but REMOVE!!!\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] How many time
Remove first part of url PATH. NOT just print, but REMOVE!!!

$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] which part of URL PATH should be changed
$to [string] changed to this
Change one part of URL PATH for a new one.

$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] In which form do we want export

  1. getScheme() - how is variable saved [string | array of string | key array]
  2. getScheme("string") - how could be written in URL
  3. getScheme("array") - in array [array of string | key array]
"http://web.cz/aaa/bbb/c.html"
  • getScheme() - get scheme part: "http"
  • getHost() - get Host part: "web.cz"
  • getRoot() - get Root part: ["aaa"]
  • getPath() - get Path part: ["bbb", "a.html"]
  • getQuery() - get Query part: ["member" => "me", "age" => "15"]
  • getFragment() - get hastag part: "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()

get the whole URL in string format.

$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()

return number of all folder from ROOT

$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()

return path, which return this url to root

$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] add items to ROOT part.

$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] add items to ROOT part.

$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] add items to ROOT part.

$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()

return 1 if the URL is ending with file: ".../a.html"
return 0 if the URL is ending onn folder: ".../a"

$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()

Get extension of URL

$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html");
$url->getExtension() => "html"

removeExtension()

If URL has extension => ".html" it will remove it from path

$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()

check if URL exist as File/Folder

$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html");
$url->exist() => 1

isFolder()

check if URL exist as Folder

$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html");
$url->isFolder() => 0

isFile()

check if URL exist as File

$url = new \UrlParser\Url("http://www.web.cz/root/aaa/bbb/a.html");
$url->isFile() => 1

remove...()

$add_part [key array] add items to ROOT part.

  • removeScheme() - remove scheme part: "http"
  • removeHost() - remove Host part: "web.cz"
  • removeRoot() - remove Root part: ["aaa"]
  • removePath() - remove Path part: ["bbb", "a.html"]
  • removeQuery() - remove Query part: ["member" => "me", "age" => "15"]
  • removeFragment() - remove hastag part: "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"
]

zerig/url-parser 适用场景与选型建议

zerig/url-parser 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 43 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 04 月 04 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「url」 「url parser」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 zerig/url-parser 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 zerig/url-parser 我们能提供哪些服务?
定制开发 / 二次开发

基于 zerig/url-parser 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 43
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 3
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-04-04