3

URL パスをパス コンポーネントに分割する特定の (標準化された) 方法はありますか? RFC 2396 を見てきましたが、そうするためのルーチンが見つかりません。

もともと、私は PHP のexplode()メソッドを使用して、それぞれに遭遇したときに文字列を配列に分割しました/が、Cocoa のクラスに対してテストするとNSURL、2 つの異なる結果が得られました。

テスト URL: 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 を使用しており、クライアント側の実装になるため、それに対してテストしています。

4

1 に答える 1

0

私はこれを行うための標準的な方法を認識していません。正直に言うと、RFC2396 にはあまり詳しくありません。

ただし、指定された例では、preg_split('#\/+#', $uriPath)任意の数のスラッシュで分割し、結果の配列の最初と最後の要素が空の文字列であるかどうかを確認するために使用できます。空の場合は、それぞれを単一のスラッシュに置き換えます。

于 2015-11-02T19:25:21.027 に答える