2014-09-19 2 views
2

Я ищу расставание URL для пары ключей значения в PHP , напримерКак Распад URL для KeyValue пары

/name/foo/location/bar/account/3449 

Результата будет что-то вроде этого

array(name => "foo", location => "bar", account => "3449"); 

Текущего решения:

$urlPieces = explode('/', $_GET['q']); 
$results = array(); 
$count = 0; 
$keyName = ""; 
foreach ($urlPieces as $key=>$value) { 
    if($count % 2 != 0){ 
     $results[$keyName] = $urlPieces[$count++]; 
    }else{ 
     $keyName = $value; 
     $count++; 
    } 
} 
+3

'$ _GET ['q']' не будет ничем, потому что у вас нет строк запроса на этом URL-адресе. – Dan

ответ

2

Как я уже говорил в комментариях - $_GET['q'] не существует клюв ause, у вас нет строк запроса по этому URL-адресу. Попробуйте следующее:

$url = strtok($_SERVER["REQUEST_URI"],'?'); //get the URL and remove query strings 
$urlPieces = explode('/', $url); //create array from that URL 
$count = 0; 
$results = array(); 
foreach ($urlPieces as $key=>$value) { 
    if($count % 2 != 0){ 
     $results[$urlPieces[$key]] = $urlPieces[$count+1]; 
     //new array key is the current $key (aka $urlPieces[$key]) 
     //new array value is the value of the next key (aka $urlPieces[$count+1]) 
    } 
    $count++; 
} 

Результирующий массив $results. Обратите внимание, что это будет работать только в том случае, если у вас есть четное количество сегментов URI.

Смежные вопросы