Вот оно:
$url = 'http://www.mysite.com/data/response/';
$result = file_get_contents($url);
$json = json_decode($result, true);
set_cookie('cookie_name', $json['value'], time() + ((int) $json['ttl']));
Поскольку cwallenpoole упоминается в комментариях ниже, убедитесь, что для переменной конфигурации allow_url_fopen
во время выполнения установлено значение TRUE (по умолчанию). Если нет - используйте ini_set('allow_url_fopen', 1)
, но я думаю, что он может быть ограничен безопасным режимом:)
json_decode
функция была введена в PHP 5.2.0. Если у вас PHP> = 5.2 и json_decode
недоступен, проверьте, включено ли расширение JSON (extension=json.so
в вашем php.ini) и был ли ваш PHP объединен с флагом --disable-json
.
Если вы используете PHP до версии 5.2, тогда вы можете использовать следующий код (введенный анонимным пользователем на PHP.net):
if ( !function_exists('json_decode') ){
function json_decode($json)
{
$comment = false;
$out = '$x=';
for ($i=0; $i<strlen($json); $i++)
{
if (!$comment)
{
if (($json[$i] == '{') || ($json[$i] == '[')) $out .= ' array(';
else if (($json[$i] == '}') || ($json[$i] == ']')) $out .= ')';
else if ($json[$i] == ':') $out .= '=>';
else $out .= $json[$i];
}
else $out .= $json[$i];
if ($json[$i] == '"' && $json[($i-1)]!="\\") $comment = !$comment;
}
eval($out . ';');
return $x;
}
}
Если allow_url_fopen
установлен на 0, и вы не можете изменить его на ini_set
или установив его в файле php.ini, вы можете придерживаться cURL (если расширение cURL включено:)):
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER_HEADER, true);
$result = curl_exec($ch);
curl_close($ch);
Остальной код должен работать как в первом примере. Надеюсь, это поможет!