Có biến số $_SERVER ['HTTP_COOKIE']
chứa cả tên miền phụ và các biến cookie miền chính có cùng tên với một chuỗi lớn. Trong mảnh đơn giản sau mã mảng $cookie_variable
sẽ chứa cả hai giá trị của các biến cụ thể:
if('sub.domain.com' == $_SERVER['HTTP_HOST']) {
$var_name = 'somedata';
$domains_counter = 0;
foreach(explode(';', $_SERVER['HTTP_COOKIE']) as $cookie_variable_string) {
if(false !== strpos($cookie_variable_string, $var_name.'=')) {
$cookie_variable[$domains_counter] = urldecode(
trim(
substr(
$cookie_variable_string,
strpos($cookie_variable_string, $var_name) + strlen($var_name.'=')
)
)
);
$domains_counter++;
}
}
var_dump($cookie_variable);
}
Dưới đây là một chức năng mà được tất cả các biến:
public static function get_http_cookie_variables() {
$domains_counter = [];
foreach(explode(';', $_SERVER['HTTP_COOKIE']) as $cookie_variable_string) {
$key_value = explode('=', $cookie_variable_string);
$cookie_var_name = trim($key_value[0]);
if(is_null($domains_counter[$cookie_var_name])) {
$domains_counter[$cookie_var_name] = 0;
}
$http_cookie_variables[$cookie_var_name][$domains_counter[$cookie_var_name]] = urldecode(trim($key_value[1]));
$domains_counter[$cookie_var_name]++;
}
return $http_cookie_variables;
}
get_http_cookie_variables() chức năng không thành công vì $ domains_counter không được khởi tạo. Tôi chỉ đơn giản là loại bỏ nó tất cả vì tôi không quan tâm đến điều đó. – user603749