проблема curl + cookie

Статус
В этой теме нельзя размещать новые ответы.
Ясно. А курлом нельзя передать куки из заголовоков в переменную? файл дергать постоянно некрасиво...
Насколько я знаю, нет. Либо через файл, либо самому парсить заголовки.
 
PHP:
if (strpos($text, "document.cookie='"))
$pos = strpos($text, "document.cookie='"); 
else if (strpos($text, "document.cookie=\""))
$pos = strpos($text, "document.cookie=\"");
вот так или ещё можно так
PHP:
preg_match_all("#document.cookie=['\"]#i",$peremenay,$pos);
далее регулярку редактируйте под свои нужды!
А нельзя кстати обойтись без регулярки? Не лезет она в мой скрипт, что то я не понимаю...
Точно помню, что можно просто перечислить, вроде такого:
PHP:
$pos = strpos($text, "document.cookie=[\"]" | "document.cookie=[']");
Но так тоже не работает...
 
там же один вариант с регуляркой другой через стрпос чем не устраивает ?
 
там же один вариант с регуляркой другой через стрпос чем не устраивает ?
Через стрпос не выходит, там несколько кук и присутствуют оба варианта скобок одновременно. Регулярку я тупо не могу пристоить чтобы скрипт работал:) Во всех найденных манах описываются только сами регулярки, с рабочими примерами напряг. Зачем воротить лишнее, если можно просто перечислить.

---------- Post added at 15:53 ---------- Previous post was at 14:45 ----------

Да, разве
PHP:
#
в регулярках, это не комментарий?
 
Да, разве
PHP:
#
в регулярках, это не комментарий?
нет
в регулярке первый и последний символ может быть любой ( кроме спец-символов походу) ....
тоесть регулярка должна начинаться с какого-то символа и им же завершаться
 
Я похоже вообще не понимаю сути регулярок.
Допустим:

PHP:
preg_match("/document.cookie=['\"]*[;';\"]/", $text, $arr);

Возвращает в $arr просто слово Array. Вроде все логично: может быть document.cookie='кукис' и document.cookie="кукис". В $text они точно есть. Но как я не извращаюсь с этой регуляркой, либо "Array", либо вообще ничего. Теоретически в $arr должны быть нужные мне кукисы...
 
лучше бы текст дали я написал регулярку а вообще из вашего примера можно сделать так
PHP:
preg_match("/document.cookie=['\"](.*?)[\;'\;\"]/i", $text, $arr);
далее юзаем
$arr[1][0]
символ # лучше закоментировать, и если выдаёт array можно вывести через print_r(); и посмотреть чё там
 
лучше бы текст дали я написал регулярку а вообще из вашего примера можно сделать так

Текст:
<script type="text/javascript" language="javascript">
<!--
document.cookie="параметр=MXхеш1Vk; expires=day, 01 Aug 01 01:01:01 GMT; path=/; domain=.domain.com;"
//-->
</script>
<script type="text/javascript">
<!--
var a22767092131=new Date();var h0285536890192=new Date();h0285536890192.setTime(a22767092131.getTime ()+249696002858);
document.cookie='4d5e11111a56=1281078431-0-!0;path=/;expires='+h0285536890192.toGMTString(h02855368901 92)+';';
document.cookie='d270d11111d173=bf0a111111739;path=/';"
// -->
</script>

PHP:
preg_match("/document.cookie=['\"](.*?)[\;'\;\"]/i", $text, $arr);
далее юзаем
$arr[1][0]
символ # лучше закоментировать, и если выдаёт array можно вывести через print_r(); и посмотреть чё там

Да, выдает выдаёт array.
я совсем не понял для чего $arr[1][0]...

Вывод print_r();:

Array ( [0] => document.cookie="параметр=MXхеш1Vk; [1] => параметр=MXхеш1Vk; ) Array
 
Я похоже вообще не понимаю сути регулярок.
Допустим:
PHP:
preg_match("/document.cookie=['\"]*[;';\"]/", $text, $arr);
Возвращает в $arr просто слово Array. Вроде все логично: может быть document.cookie='кукис' и document.cookie="кукис". В $text они точно есть. Но как я не извращаюсь с этой регуляркой, либо "Array", либо вообще ничего. Теоретически в $arr должны быть нужные мне кукисы...

возвращает слово Array так как ничего не нашло соответствующее маске регулярки....

>>>Вроде все логично: может быть document.cookie='кукис' и document.cookie="кукис".
ваша логика противоречит логике регулярок
"/document.cookie=['\"]*[;';\"]/"
если разбить по частям то получается
1) document.cookie= - простая строка
2) ['\"] любой из символов, одинарная или двойная кавычка
3) * Звёздочка означает 0, 1 или любое число раз ... т.е. кавычка ( одинарная или двойная) может вовсе не повторяться, или повториться 1 раз ... или повториться миллиарды раз ....
4) [;';\"] любой из символов ; или ' иди "

следовательно ваша регулярка соответствует строкам
document.cookie=куча_кавычек точка_с_запято_или_кавычка
document.cookie=''""''""''"";
или
document.cookie=''""''""''""
или
document.cookie='
или
document.cookie=;
или....

но уж точно не document.cookie='кукис' иил document.cookie="кукис".

=========================
вас должна устроить след. регулярное выражение
PHP:
"/document.cookie=['\"](.*?)['\"]/i"
+ вместо ф-ции preg_match используйте preg_match_all, таким образом вы соберете все куки в тексте

PHP:
preg_match_all("/document.cookie=['\"](.*?)['\"]/i", $text, $arr);
print_r($arr);
 
возвращает слово Array так как ничего не нашло соответствующее маске регулярки....
>>>Вроде все логично: может быть document.cookie='кукис' и document.cookie="кукис".
ваша логика противоречит логике регулярок
"/document.cookie=['\"]*[;';\"]/"
если разбить по частям то получается
1) document.cookie= - простая строка
2) ['\"] любой из символов, одинарная или двойная кавычка
3) * Звёздочка означает 0, 1 или любое число раз ... т.е. кавычка ( одинарная или двойная) может вовсе не повторяться, или повториться 1 раз ... или повториться миллиарды раз ....
4) [;';\"] любой из символов ; или ' иди "
следовательно ваша регулярка соответствует строкам
document.cookie=куча_кавычек точка_с_запято_или_кавычка
document.cookie=''""''""''"";
или
document.cookie=''""''""''""
или
document.cookie='
или
document.cookie=;
или....
но уж точно не document.cookie='кукис' иил document.cookie="кукис".
Да, все так:) Задумывалось это как любое количество любых символов между кавычками, а получилась куча кавычек...
=========================
вас должна устроить след. регулярное выражение
PHP:
"/document.cookie=['\"](.*?)['\"]/i"
+ вместо ф-ции preg_match используйте preg_match_all, таким образом вы соберете все куки в тексте
PHP:
preg_match_all("/document.cookie=['\"](.*?)['\"]/i", $text, $arr);
print_r($arr);
Регулярка рабочая, спасибо. Тут новая проблема, похоже кукисы нельзя передать массивом. print_r($arr); выдает нужный результат а попытка записать его в переменную или фаил возвращает слово Array.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху