php - 如何从此代码中获取 sessionId 和 viewstate 变量?

标签 php html regex libcurl

Possible Duplicate:
Grabbing the href attribute of an A element

如何提取sessionIdviewstate这段代码中的变量?

代码是这样的:

$url = "http://www.atb.bergamo.it/ITA/Default.aspx?SEZ=2&PAG=38&MOD=LINTRV";

$ckfile = tempnam ("/tmp", "CURLCOOKIE");
$ch = curl_init ($url);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec ($ch);
curl_close($ch);

preg_match('~<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="(.*?)" />~',$html,$viewstate);

var_dump(file_get_contents($ckfile)); //<--- There's the sessionId variable in it
var_dump($viewstate[1]);              //<--- View State

你能帮我吗?

最佳答案

您可以非常简单地完成此操作,无需正则表达式:

$viewstate = explode('id="__VIEWSTATE" value="', $html);
$viewstate = explode('"', $viewstate[1]);
$viewstate = $viewstate[0];

cookie 也一样:

$sesid = explode('SessionId', file_get_contents($ckfile));
$sesid = explode('\n', $sesid[1]);
$sesid = trim($sesid[0]);

把它们放在一起,你就得到了

   $url = "http://www.atb.bergamo.it/ITA/Default.aspx?SEZ=2&PAG=38&MOD=LINTRV";    
   $ckfile = tempnam ("/tmp", "CURLCOOKIE");
   $ch = curl_init ($url);
   curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile); 
   curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true);
   curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
   $html = curl_exec ($ch);
   curl_close($ch);

    $viewstate = explode('id="__VIEWSTATE" value="', $html);
    $viewstate = explode('"', $viewstate[1]);
    $viewstate = $viewstate[0];    

    $sesid = explode('_SessionId', file_get_contents($ckfile));
    $sesid = explode("\n", $sesid[1]);    
    $sesid = trim($sesid[0]);

    echo $viewstate."<br/>";
    echo $sesid;

适用于我的测试设置。

关于php - 如何从此代码中获取 sessionId 和 viewstate 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13662499/

相关文章:

php - 带有限制和偏移量的 CodeIgniter sql 查询不显示结果

基于 ajax 的网站的 php 爬虫?

html - 如何使整个网页成为一种颜色?

android - ionic 4 : How to fix a login page design

regex - 如何使用 Eclipse 或 PowerGREP 搜索和替换文件中的 block ?

php - 分析电子商务跟踪仅获取最后一项

php - 将 Excel 行读取为数组 : Does PHPExcel have a fgetcsv() equivalent?

html - 从 html5 动画创建视频的最佳方式

javascript - 用于在 javascript 中的单词边界上包装 span 标记中每个单词的正则表达式

python - 查找具有特定格式的数字