duanfen9983 2016-11-19 05:51
浏览 52
已采纳

使用preg_match获取隐藏的输入值

I am trying to get the value of _fh and _nonce with preg_match

HTML

<form method="post" enctype="multipart/form-data"  name="signin">
<input type="hidden" name="_fh" value="cd5a29509482534507a7a999ad0e0943">
<input type="hidden" name="_nonce" value="7fe456a0902ba89b365f760cdeb37113">

Here is my attempt

$returnValue = preg_match('#<input(.*)name="_fh"(.*)value="(.*?)"#is', '<form method="post" enctype="multipart/form-data"  name="signin">
<input type="hidden" name="_fh" value="cd5a29509482534507a7a999ad0e0943">
<input type="hidden" name="_nonce" value="7fe456a0902ba89b365f760cdeb37113">

', $matches);

Result

array (
  0 => '<input type="hidden" name="_fh" value="cd5a29509482534507a7a999ad0e0943">
<input type="hidden" name="_nonce" value="7fe456a0902ba89b365f760cdeb37113"',
  1 => ' type="hidden" ',
  2 => ' value="cd5a29509482534507a7a999ad0e0943">
<input type="hidden" name="_nonce" ',
  3 => '7fe456a0902ba89b365f760cdeb37113',
)
  • 写回答

3条回答 默认 最新

  • douxie1692 2016-11-19 06:10
    关注

    Don't use regex for parsing HTML.

    Recommended is to use HTML DOM parser like this:

    $html = <<<EOF
    <form method="post" enctype="multipart/form-data"  name="signin">
    <input type="hidden" name="_fh" value="cd5a29509482534507a7a999ad0e0943">
    <input type="hidden" name="_nonce" value="7fe456a0902ba89b365f760cdeb37113">
    EOF;
    
    $doc = new DOMDocument();
    libxml_use_internal_errors(true);
    $doc->loadHTML($html);
    
    #echo $doc->saveHTML();
    $xpath = new DOMXPath($doc);
    
    $val1 = $xpath->query('//input[@name="_fh"]/@value')->item(0)->nodeValue;
    
    $val2 = $xpath->query('//input[@name="_nonce"]/@value')->item(0)->nodeValue;
    
    echo $val1 . PHP_EOL;
    echo $val2 . PHP_EOL;
    

    Output:

    cd5a29509482534507a7a999ad0e0943
    7fe456a0902ba89b365f760cdeb37113
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?