Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据RFC拆分URL路径_Php_Url_Rfc2396 - Fatal编程技术网

Php 根据RFC拆分URL路径

Php 根据RFC拆分URL路径,php,url,rfc2396,Php,Url,Rfc2396,是否有特定的(标准化的)方式将URL路径拆分为路径组件?我看过RFC2396,但看不到这样做的例程 最初,我只是使用PHP的explode()方法在遇到每个/时将字符串分解成一个数组,但在对Cocoa的NSURL类进行测试时,我得到了两个不同的结果: 测试URL: NSURL: ["/", "rest", "api", "v2.1.1", "noun", "verb", "12345", "additional", "stuff", "/“] 我的PHP方法: Array ( [0] =>

是否有特定的(标准化的)方式将URL路径拆分为路径组件?我看过RFC2396,但看不到这样做的例程

最初,我只是使用PHP的
explode()
方法在遇到每个
/
时将字符串分解成一个数组,但在对Cocoa的
NSURL
类进行测试时,我得到了两个不同的结果:

测试URL:

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)
按任意数量的正斜杠进行拆分,然后检查结果数组的第一个和最后一个元素是否为空字符串-如果是空字符串,则用单个斜杠替换它们。

特别是,我应该注意到,我正在寻找一种方法来找出如何保留特定信息(如前导斜杠和尾随斜杠)以及如何确定哪些数据不应保留—无需猜测—这也是我最后采用的类似解决方案。不过谢谢:)