2017-01-11 3 views
-1

У меня возникла проблема при разборе только определенной конкретной строки из файлов cookie curl, которые я выполняю.PHP curl cookie разбор строки

Это мой код при разборе строки из файла cookie.

$cookies = array(); 
     preg_match_all('/Set-Cookie:(?<cookie>\s{0,}.*)$/im', $page, $cookies); 
     $cookie = $cookies['cookie']; 
     $file = "cookie.txt"; 
     file_put_contents($file, $cookie); 
     $token = explode('CSRF-TOKEN=', file_get_contents(realpath('.').'/cookie.txt')); 
     $tokens = trim($token[1]); 

, а затем, прежде чем я включаю переменную $ лексемы мой локон после данных я тестировал первый, пытаясь повторить, если он работает хорошо, но я получаю этот выход.

WHac0HdIKj7lEn7dzk8YyQAAANU;path=/;secure 

я получаю, что выход в качестве значения CSRF-токен, но то, что я только хотел получить является WHac0HdIKj7lEn7dzk8YyQAAANU.

Есть ли все равно, чтобы разобрать это?

Надеюсь, вы это понимаете. Я стараюсь говорить по-английски:

+0

Что такое '$ page'? – AbraCadaver

+0

@AbraCadaver, вам действительно все еще нужно это знать? На самом деле это довольно далеко от того, что я действительно хотел узнать, и на мой вопрос сэр. –

ответ

0

Вместо этого используйте '/Set-Cookie:(?<cookie>\w+)/im'.

Вы используете .* и $, который соответствует любому символу, вплоть до конца строки, с \w он будет остановить соответствие в конце границы слова.

0

быстрый и грязный раствор (так как вы уже используете взрываются):

$tokens = trim(exlode(';path',$token[1])[0]); 

Но я думаю, что должно быть чистым и быстрым способом (если вы не сохраните файл cookie.txt по другой причине).