是否存在将URL路径拆分为路径组件的特定(标准化)方法?我看过RFC 2396,看不到这样做的例行程序。
最初,我只是使用PHP的explode()
方法在遇到每个字符串时将字符串分成一个数组/
,但是在对Cocoa的NSURL
类进行测试时,我得到两个不同的结果:
测试网址:https://example.com/rest/api///v2.1.1/noun/verb////12345/additional/stuff////
NSURL:
["/", "rest", "api", "v2.1.1", "noun", "verb", "12345", "additional", "stuff", "/“]
我的PHP方法:
Array ( [0] => [1] => rest [2] => api [3] => [4] => [5] => v2.1.1 [6] => noun [7] => verb [8] => [9] => [10] => [11] => 12345 [12] => additional [13] => stuff [14] => [15] => [16] => )
我知道RFC 2396已被RFC 3986取代,但是NSURL使用2396,这就是我要测试的对象,因为它将是客户端实现。
我不知道执行此操作的任何标准方法,说实话,我对RFC2396不太熟悉。
但是,对于给定的示例,您可以使用preg_split('#\/+#', $uriPath)
按任意数量的正斜杠进行分割,然后检查结果数组的第一个和最后一个元素是否为空字符串-如果是,请分别用一个斜杠替换它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句