首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP使用Snoopy提取表单数据

PHP使用Snoopy提取表单数据
EN

Stack Overflow用户
提问于 2015-07-10 01:44:59
回答 1查看 230关注 0票数 0

我正在使用Snoopy从网站提取表单。其结果如下所示。

代码语言:javascript
复制
<form action="sendmessage.aspx">
<input type="hidden" name="" value="" />
<input type="hidden" value="103330268" name="usersendto" />
<input type="hidden" value="Bla343" name="sendto" />
<input type="hidden" value="94302158" name="p_id" />
<input type="hidden" value='' name='SID' />
<input type="hidden" value='' name='guid' />

我现在想做的就是把它变成这个...

代码语言:javascript
复制
$p_data[''] = '';
$p_data['usersendto'] = '103330268';
$p_data['sendto'] = 'Bla343';
$p_data['p_id'] = '94302158';
$p_data['SID'] = '';
$p_data['guid'] = '';

不知道从哪里开始...

EN

回答 1

Stack Overflow用户

发布于 2015-08-20 00:00:06

Snoopy将以字符串的形式给出表单的HTML。然后你需要操纵它。要做HTML标记,你应该把它解析成一个DOM,或者,老式的,你可以小心地使用正则表达式。

代码语言:javascript
复制
$results = <<< EOF
<form action="sendmessage.aspx">
<input type="hidden" name="" value="" />
<input type="hidden" value="103330268" name="usersendto" />
<input type="hidden" value="Bla343" name="sendto" />
<input type="hidden" value="94302158" name="p_id" />
<input type="hidden" value='' name='SID' />
<input type="hidden" value='' name='guid' />
EOF;

$p_data=[];
preg_match_all("/<\s*input(.*?)>/sim",$results,$input_tags);
foreach ($input_tags[1] as $input_tag) {
    preg_match("/name\s*=\s*[\'\"](.*?)[\'\"]/sim",$input_tag,$name);
    preg_match("/value\s*=\s*[\'\"](.*?)[\'\"]/sim",$input_tag,$value);
    if (is_array($name) AND is_array($value)) {
        $p_data[$name[1]] = $value[1];
    }
}

foreach ($p_data as $key => $value) {
    print "'$key' = '$value'<br>";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31324675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档