Любой способ сохранить cookie завихрения в памяти а не на диске

распараллельте утечки, Вы часто забываете считать количество потоков

33
задан Uberfuzzy 28 September 2009 в 09:09
поделиться

3 ответа

Вы можете использовать параметр CURLOPT_COOKIEJAR и установить для файла значение « / dev / null » для Linux / MacOS X или « NULL » для Windows . Это предотвратит запись файлов cookie на диск, но сохранит их в памяти, пока вы повторно используете дескриптор и не вызываете curl_easy_cleanup () .

26
ответ дан 27 November 2019 в 18:06
поделиться

К сожалению, я не думаю, что вы можете использовать php: // memory в качестве потока ввода и вывода. Обходной путь - самостоятельно проанализировать заголовки. Сделать это довольно просто. Вот пример страницы, которая выполняет два запроса и сама передает файлы cookie.

curl.php:

<?php

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://localhost/test.php?message=Hello!');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($curl, CURLOPT_HEADER, true);  
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

$data = curl_exec($curl);
curl_close($curl);

preg_match_all('|Set-Cookie: (.*);|U', $data, $matches);   
$cookies = implode('; ', $matches[1]);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://localhost/test.php');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($curl, CURLOPT_HEADER, true);  
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_COOKIE, $cookies);

$data = curl_exec($curl);
echo $data;

?>

test.php:

<?php
session_start();
if(isset($_SESSION['message'])) {
    echo $_SESSION['message'];
} else {
    echo 'No message in session';
}

if(isset($_GET['message'])) {
    $_SESSION['message'] = $_GET['message'];
}
?>

Будет выведено сообщение «Hello!» по второму запросу.

27
ответ дан 27 November 2019 в 18:06
поделиться

Если вы используете Linux, вы можете настроить их так, чтобы они указывали где-нибудь в / dev / shm .. это сохранит их в памяти, и вы можете быть уверены, что они не сохранятся при повторной загрузке.

Мне почему-то казалось, что очистка Curl обрабатывает отключение файлов cookie, но я мог ошибаться.

2
ответ дан 27 November 2019 в 18:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: