Использование скобок в имени файла cookie – Почему PHP превращает его в массив?

Я пытаюсь использовать скобки внутри имени файла cookie.

Предполагается, что он выглядит так (браузер хочет этого!):

Name: name[123456].newName Content: 20 

Вот мой пример:

 $cookie = "name[123456].newName=20" 

Но когда я анализирую, что видит браузер, я получаю следующее:

 cookie['name'] = Array 

И я хочу:

 cookie['name[123456].newName'] = 20 

Мой вопрос: как мне написать имя cookie так, как это понимает браузер?

Заранее спасибо.

Собственно, все, что вам нужно сделать, это:

 <?php setcookie('name[123456].newName', 20); ?> 

Это генерирует следующий заголовок:

 Set-Cookie: name[123456].newName=20 

… и браузеры (ну, по крайней мере, Firefox), похоже, справляются с этим просто отлично.

Проблема начинается, когда вы хотите прочитать значение обратно. PHP имеет приятную особенность: всякий раз, когда он находит входной параметр (get, post, cookie …) с квадратными скобками на его имени, он будет строить из него массив. Итак, print_r($_COOKIE) отображает это:

 Array ( [name] => Array ( [123456] => 20 ) ) 

Я не знаю, как отключить эту функцию, поэтому вам, вероятно, понадобится использовать строковые функции и проанализировать содержимое raw cookie, которое можно найти в $_SERVER['HTTP_COOKIE'] :

 name[123456].newName=20