想要从 CURL PHP 中的此文本获取 CSRF 令牌
Want to get the CSRF Token from this text in CURL PHP
我正在尝试从原始文本中获取 CSRF 令牌,基本上,我在 PAGE 上有很多文本数据,我在该页面上几乎有 5-10 个 CSRF 令牌都是相同的,我只是想从文本中获取一个 csrf 令牌并保存到 PHP 变量中。
<?php
$url = "--";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($ch);
preg_match_all('/^x-csrf-token:\s*([^;]*)/mi', $result, $matches);
$cookies = array();
foreach($matches[1] as $item) {
parse_str($item, $cookie);
$cookies = array_merge($cookies, $cookie);
}
$session = $cookies['x-csrf-token'];
echo($session);
?>
这是代码,但它不起作用。
文本屏幕:
您的 regex
似乎与您的示例文本无关。
具体来说:
^
字符匹配文本的开头,而您的匹配项在文本中。所以这需要删除
- 您遗漏了原文中的引号
'
- 你正在匹配
[^;]*
这意味着当你找到一个分号时中断,但你的文本中没有分号
根据您分享的示例文本,正则表达式应该是
/x-csrf-token',\s*'([^']+)/mi
3v4l 示例:https://3v4l.org/WjKhb
我正在尝试从原始文本中获取 CSRF 令牌,基本上,我在 PAGE 上有很多文本数据,我在该页面上几乎有 5-10 个 CSRF 令牌都是相同的,我只是想从文本中获取一个 csrf 令牌并保存到 PHP 变量中。
<?php
$url = "--";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($ch);
preg_match_all('/^x-csrf-token:\s*([^;]*)/mi', $result, $matches);
$cookies = array();
foreach($matches[1] as $item) {
parse_str($item, $cookie);
$cookies = array_merge($cookies, $cookie);
}
$session = $cookies['x-csrf-token'];
echo($session);
?>
这是代码,但它不起作用。
文本屏幕:
您的 regex
似乎与您的示例文本无关。
具体来说:
^
字符匹配文本的开头,而您的匹配项在文本中。所以这需要删除- 您遗漏了原文中的引号
'
- 你正在匹配
[^;]*
这意味着当你找到一个分号时中断,但你的文本中没有分号
根据您分享的示例文本,正则表达式应该是
/x-csrf-token',\s*'([^']+)/mi
3v4l 示例:https://3v4l.org/WjKhb