1212use InvalidArgumentException ;
1313use PhpComp \Http \Client \Exception \ClientException ;
1414use Toolkit \Stdlib \Helper \JsonHelper ;
15+ use Toolkit \Stdlib \Str \UrlHelper ;
1516use function array_merge ;
1617use function http_build_query ;
1718use function is_scalar ;
@@ -78,13 +79,14 @@ public static function ucwordArrayKeys(array $arr): array
7879 */
7980 public static function isFullURL (string $ url ): bool
8081 {
81- return 0 === strpos ( $ url , ' http: ' ) || 0 === strpos ( $ url , ' https: ' ) || 0 === strpos ($ url, ' // ' );
82+ return UrlHelper:: isFullUrl ($ url );
8283 }
8384
8485 /**
8586 * @param string $url
8687 *
8788 * @return array
89+ * @deprecated please use UrlHelper::parse2($url);
8890 */
8991 public static function parseUrl (string $ url ): array
9092 {
@@ -93,15 +95,13 @@ public static function parseUrl(string $url): array
9395 throw new ClientException ('invalid request url: ' . $ url );
9496 }
9597
96- $ info = array_merge ([
98+ return array_merge ([
9799 'scheme ' => 'http ' ,
98100 'host ' => '' ,
99101 'port ' => 80 ,
100102 'path ' => '/ ' ,
101103 'query ' => '' ,
102104 ], $ info );
103-
104- return $ info ;
105105 }
106106
107107 /**
@@ -119,75 +119,19 @@ public static function buildURL(string $url, $data = null): string
119119 return $ url ;
120120 }
121121
122- // Build arrays of values we need to decode before parsing
123- protected static $ entities = [
124- '%21 ' ,
125- '%2A ' ,
126- '%27 ' ,
127- '%28 ' ,
128- '%29 ' ,
129- '%3B ' ,
130- '%3A ' ,
131- '%40 ' ,
132- '%26 ' ,
133- '%3D ' ,
134- '%24 ' ,
135- '%2C ' ,
136- '%2F ' ,
137- '%3F ' ,
138- '%23 ' ,
139- '%5B ' ,
140- '%5D '
141- ];
142-
143- protected static $ replacements = [
144- '! ' ,
145- '* ' ,
146- "' " ,
147- '( ' ,
148- ') ' ,
149- '; ' ,
150- ': ' ,
151- '@ ' ,
152- '& ' ,
153- '= ' ,
154- '$ ' ,
155- ', ' ,
156- '/ ' ,
157- '? ' ,
158- '# ' ,
159- '[ ' ,
160- '] '
161- ];
162-
163122 /**
164- * [urlEncode 会先转换编码]
165- * $url="ftp://ud03:password@www.xxx.net/中文/中文.rar";
166- * $url1 = url_encode($url);
167- * //ftp://ud03:password@www.xxx.net/%C3%A4%C2%B8%C2%AD%C3%A6%C2%96%C2%87/%C3%A4%C2%B8%C2%AD%C3%A6%C2%96%C2%87.rar
168- * $url2 = urldecode($url);
169- * echo $url1.PHP_EOL.$url2;
170- *
171- * @param string $url [description]
123+ * @param string $url
172124 *
173- * @return mixed|string [type] [description]
125+ * @return string
126+ * @deprecated please use UrlHelper::encode2($url);
174127 */
175- public static function encodeURL (string $ url )
128+ public static function encodeURL (string $ url ): string
176129 {
177- if (!$ url = trim ($ url )) {
178- return '' ;
179- }
180-
181- // 若已被编码的url,将被解码,再继续重新编码
182- $ url = urldecode ($ url );
183-
184- $ encodeUrl = rawurlencode (mb_convert_encoding ($ url , 'utf-8 ' ));
185- // $url = rawurlencode($url);
186- return str_replace (self ::$ entities , self ::$ replacements , $ encodeUrl );
130+ return UrlHelper::encode2 ($ url );
187131 }
188132
189133 /**
190- * @param array $headers
134+ * @param array $headers
191135 * @param string|array|object $data body data
192136 *
193137 * @return string
0 commit comments