Skip to content

Commit 94901f2

Browse files
committed
move OsHelper::getDomain to UrlHelper::getDomain
move OsHelper::getUrl to UrlHelper::getUrl move OsHelper::getUri to UrlHelper::getUri
1 parent 36f6227 commit 94901f2

File tree

4 files changed

+109
-108
lines changed

4 files changed

+109
-108
lines changed

src/Helpers/OsHelper.php

Lines changed: 0 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -327,80 +327,6 @@ public static function getServerIP(array $server = null): string {
327327
}
328328

329329

330-
/**
331-
* 获取域名
332-
* @param string $url
333-
* @param bool $firstLevel 是否获取一级域名,如:abc.test.com取test.com
334-
* @param array $server server信息
335-
* @return string
336-
*/
337-
public static function getDomain(string $url, bool $firstLevel = false, array $server = []): string {
338-
if (empty($server)) {
339-
$server = $_SERVER;
340-
}
341-
if (empty($url)) {
342-
$url = $server['HTTP_HOST'] ?? '';
343-
}
344-
345-
if (!stripos($url, '://')) {
346-
$url = 'http://' . $url;
347-
}
348-
349-
$parse = parse_url(strtolower($url));
350-
$domain = '';
351-
if (isset($parse['host'])) {
352-
$domain = $parse['host'];
353-
}
354-
355-
if ($firstLevel) {
356-
$arr = explode('.', $domain);
357-
$size = count($arr);
358-
if ($size >= 2) {
359-
$domain = $arr[$size - 2] . '.' . end($arr);
360-
}
361-
}
362-
363-
return $domain;
364-
}
365-
366-
367-
/**
368-
* 获取当前页面完整URL地址
369-
* @param array $server server信息
370-
* @return string
371-
*/
372-
public static function getUrl(array $server = []) {
373-
if (empty($server)) {
374-
$server = $_SERVER;
375-
}
376-
377-
$protocal = ($server['SERVER_PORT'] ?? '') == '443' ? 'https://' : 'http://';
378-
$phpSelf = $server['PHP_SELF'] ?? $server['SCRIPT_NAME'];
379-
$pathInfo = $server['PATH_INFO'] ?? '';
380-
$relateUrl = $server['REQUEST_URI'] ?? ltrim($phpSelf, '/') . (isset($server['QUERY_STRING']) ? '?' . $server['QUERY_STRING'] : $pathInfo);
381-
return $protocal . ($server['HTTP_HOST'] ?? '') . $relateUrl;
382-
}
383-
384-
385-
/**
386-
* 获取URI
387-
* @param array $server
388-
* @return string
389-
*/
390-
public static function getUri(array $server = []): string {
391-
if (empty($server)) {
392-
$server = $_SERVER;
393-
}
394-
395-
if (isset($server['REQUEST_URI'])) {
396-
return $server['REQUEST_URI'];
397-
}
398-
399-
$uri = ($server['PHP_SELF'] ?? '') . "?" . ($server['QUERY_STRING'] ?? ($server['argv'][0] ?? ''));
400-
return $uri;
401-
}
402-
403-
404330
/**
405331
* IP地址转成无符号整型(内置函数ip2long会返回负值)
406332
* @param string $ip

src/Helpers/UrlHelper.php

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,4 +182,79 @@ public static function url2Link(string $url, array $protocols = ['http', 'https'
182182
}
183183

184184

185+
186+
/**
187+
* 获取域名
188+
* @param string $url
189+
* @param bool $firstLevel 是否获取一级域名,如:abc.test.com取test.com
190+
* @param array $server server信息
191+
* @return string
192+
*/
193+
public static function getDomain(string $url, bool $firstLevel = false, array $server = []): string {
194+
if (empty($server)) {
195+
$server = $_SERVER;
196+
}
197+
if (empty($url)) {
198+
$url = $server['HTTP_HOST'] ?? '';
199+
}
200+
201+
if (!stripos($url, '://')) {
202+
$url = 'http://' . $url;
203+
}
204+
205+
$parse = parse_url(strtolower($url));
206+
$domain = '';
207+
if (isset($parse['host'])) {
208+
$domain = $parse['host'];
209+
}
210+
211+
if ($firstLevel) {
212+
$arr = explode('.', $domain);
213+
$size = count($arr);
214+
if ($size >= 2) {
215+
$domain = $arr[$size - 2] . '.' . end($arr);
216+
}
217+
}
218+
219+
return $domain;
220+
}
221+
222+
223+
/**
224+
* 获取当前页面完整URL地址
225+
* @param array $server server信息
226+
* @return string
227+
*/
228+
public static function getUrl(array $server = []): string {
229+
if (empty($server)) {
230+
$server = $_SERVER;
231+
}
232+
233+
$protocal = ($server['SERVER_PORT'] ?? '') == '443' ? 'https://' : 'http://';
234+
$phpSelf = $server['PHP_SELF'] ?? $server['SCRIPT_NAME'];
235+
$pathInfo = $server['PATH_INFO'] ?? '';
236+
$relateUrl = $server['REQUEST_URI'] ?? ltrim($phpSelf, '/') . (isset($server['QUERY_STRING']) ? '?' . $server['QUERY_STRING'] : $pathInfo);
237+
return $protocal . ($server['HTTP_HOST'] ?? '') . $relateUrl;
238+
}
239+
240+
241+
/**
242+
* 获取URI
243+
* @param array $server
244+
* @return string
245+
*/
246+
public static function getUri(array $server = []): string {
247+
if (empty($server)) {
248+
$server = $_SERVER;
249+
}
250+
251+
if (isset($server['REQUEST_URI'])) {
252+
return $server['REQUEST_URI'];
253+
}
254+
255+
$uri = ($server['PHP_SELF'] ?? '') . "?" . ($server['QUERY_STRING'] ?? ($server['argv'][0] ?? ''));
256+
return $uri;
257+
}
258+
259+
185260
}

tests/Unit/OsHelperTest.php

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99

1010
namespace Kph\Tests\Unit;
1111

12-
use Kph\Helpers\ValidateHelper;
13-
use PHPUnit\Framework\TestCase;
1412
use Error;
1513
use Exception;
1614
use Kph\Consts;
1715
use Kph\Helpers\OsHelper;
16+
use Kph\Helpers\ValidateHelper;
17+
use PHPUnit\Framework\TestCase;
1818

1919

2020
class OsHelperTest extends TestCase {
@@ -156,37 +156,6 @@ public function testGetServerIP() {
156156
}
157157

158158

159-
public function testGetDomainUrlUri() {
160-
$server = self::$server;
161-
$url = 'http://www.test.loc/index.php?name=hello&age=20&from=world';
162-
$res1 = OsHelper::getDomain($url, false, $server);
163-
$res2 = OsHelper::getDomain($url, true, $server);
164-
165-
$this->assertEquals('www.test.loc', $res1);
166-
$this->assertEquals('test.loc', $res2);
167-
168-
$res3 = OsHelper::getUrl($server);
169-
$this->assertEquals($url, $res3);
170-
171-
$res4 = OsHelper::getUri($server);
172-
unset($server['REQUEST_URI']);
173-
$res5 = OsHelper::getUri($server);
174-
$this->assertEquals($res4, $res5);
175-
176-
$res6 = OsHelper::getDomain('', true, $server);
177-
$this->assertEquals('test.loc', $res6);
178-
179-
$res7 = OsHelper::getUrl();
180-
$this->assertFalse(ValidateHelper::isUrl($res7));
181-
182-
$res8 = OsHelper::getUri();
183-
$this->assertNotEmpty($res8);
184-
185-
$res9 = OsHelper::getDomain('');
186-
$this->assertEmpty($res9);
187-
}
188-
189-
190159
public function testIp2UnsignedInt() {
191160
$ip1 = '172.17.0.1';
192161
$ip2 = '192.168.56.1';

tests/Unit/UrlHelperTest.php

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@
99

1010
namespace Kph\Tests\Unit;
1111

12-
use PHPUnit\Framework\TestCase;
1312
use Error;
1413
use Exception;
1514
use Kph\Helpers\StringHelper;
1615
use Kph\Helpers\UrlHelper;
16+
use Kph\Helpers\ValidateHelper;
17+
use PHPUnit\Framework\TestCase;
1718

1819

1920
class UrlHelperTest extends TestCase {
@@ -88,4 +89,34 @@ public function testUrl2Link() {
8889
}
8990

9091

92+
public function testGetDomainUrlUri() {
93+
$server = OsHelperTest::$server;
94+
$url = 'http://www.test.loc/index.php?name=hello&age=20&from=world';
95+
$res1 = UrlHelper::getDomain($url, false, $server);
96+
$res2 = UrlHelper::getDomain($url, true, $server);
97+
98+
$this->assertEquals('www.test.loc', $res1);
99+
$this->assertEquals('test.loc', $res2);
100+
101+
$res3 = UrlHelper::getUrl($server);
102+
$this->assertEquals($url, $res3);
103+
104+
$res4 = UrlHelper::getUri($server);
105+
unset($server['REQUEST_URI']);
106+
$res5 = UrlHelper::getUri($server);
107+
$this->assertEquals($res4, $res5);
108+
109+
$res6 = UrlHelper::getDomain('', true, $server);
110+
$this->assertEquals('test.loc', $res6);
111+
112+
$res7 = UrlHelper::getUrl();
113+
$this->assertFalse(ValidateHelper::isUrl($res7));
114+
115+
$res8 = UrlHelper::getUri();
116+
$this->assertNotEmpty($res8);
117+
118+
$res9 = UrlHelper::getDomain('');
119+
$this->assertEmpty($res9);
120+
}
121+
91122
}

0 commit comments

Comments
 (0)