Зачем вы анализируете куки самостоятельно?
Когда вы делаете запрос и хотите чтобы curl сохранил куки, вы ставите вот это:
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies.txt');
Когда вы делаете запрос и хотите чтобы curl передал серверу эти сохраненные куки, вы пишете вот это:
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookies.txt');
Их можно использовать вместе.
То есть первый запрос делается с
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies.txt');
А все последующие начиная со второго запроса
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookies.txt');
Тогда curl будет читать и записывать в один и тот же файл