Разделение пути URL на RFC

Существует ли определенный (стандартизированный) способ разделения пути URL на компоненты пути? Я посмотрел на RFC 2396 и не вижу рутины для этого.

Первоначально я просто использовал PHP explode() метод разбить строку на массив, когда он встречает каждый /, но при тестировании против какао NSURL класс, я получаю два разных результата:

Тестовый 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, и это то, что я проверяю, поскольку это будет реализация на стороне клиента.

3

Решение

Я не знаю ни одного стандартного способа сделать это и, честно говоря, я не настолько знаком с RFC2396.

Тем не менее, для вашего данного примера, вы можете использовать preg_split('#\/+#', $uriPath) разделить на любое количество прямых косых черт, а затем проверить, являются ли первый и последний элементы полученного массива пустыми строками — если они есть, замените их на одну косую черту в каждой.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]