2015-05-25 3 views
-1

Я пытаюсь разобрать Netscape HTTP Cooke File, используемый функцией PHP curl.Получить значение ключа из значения другой клавиши

Я использую this parser, который возвращает массив так:

Array 
(
    [0] => Array 
     (
      [domain] => REDACTED 
      [flag] => FALSE 
      [path] =>/
      [secure] => FALSE 
      [expiration] => 2016-05-23 03:27:19 
      [name] => csrftoken 
      [value] => REDACTED 
     ) 

    [1] => Array 
     (
      [domain] => #HttpOnly_REDACTED 
      [flag] => FALSE 
      [path] =>/
      [secure] => FALSE 
      [expiration] => 2015-06-08 03:27:17 
      [name] => sessionid 
      [value] => REDACTED 
     ) 

    [2] => Array 
     (
      [domain] => REDACTED 
      [flag] => FALSE 
      [path] =>/
      [secure] => FALSE 
      [expiration] => 1969-12-31 09:00:00 
      [name] => PHPSESSID 
      [value] => REDACTED 
     ) 

) 

Мне нужно, чтобы получить sessionid здесь. Проблема в том, что я не могу просто использовать $ array [1] ['value'], потому что количество массивов и их позиция не фиксированы. Все, что я точно знаю, это $ array [?] ['Name'] == "sessionid".

+1

Я бы перепроектировал, как вы создаете эти массивы. Ключи предназначены для того, что вы ** знаете **. – Forien

+1

Затем просто перейдите к '$ array [1] ['key2b']', чтобы получить 'value2b'. Я не знаю, какова ваша проблема/вопрос прямо сейчас. – Forien

+2

вопрос не так ясен для меня. Не могу получить то, что вам точно нужно. Если вы можете дать нам то, что вам нужно, то это поможет понять намного лучше. –

ответ

1

Это должно сработать.

<?php 

// this is array returned to you from parser 
$array = ...; 

foreach ($array as $number => $row) { 
    if ($row['name'] == 'sessionid') { 
     $index = $number; 
     break; 
    }   
} 

if (isset($number)) { 
    $sessionID = $array[$index]; 
} else { 
    echo "nothing found"; 
} 

// now you can use $sessionID['expiration'] etc 
+0

'$ sessionID = $ array [$ index] ['value']' работает для меня: D –

+0

Есть ли более короткий способ сделать это? используя нативную функцию? –

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