1

我正在尝试使用 html 表单将值发布到页面并获取该页面的源。

我可以使用$html = file_get_html('http://www.exam.com/results/');

但在获取源之前,我需要先将值发布到该页面,然后获取源。

假设我应该发布值的其他页面是http://www.exam.com/results/

我创建了一个价值提交表单。

<form method="post" action="http://www.exam.com/results/">

<input type="hidden" value="900358967" name="eid">
<input name="confirm" type="submit" value="Enter" >

</form>

因此它将在该页面上发布值并显示数据,但是如何使用数据获取页面源?

这可能吗?我到处搜索并试图抓住它,但我不知道在发布价值后如何抓住它。

4

2 回答 2

1

我注意到您的问题用 javascript 标记。所以这是一个可以使用 jQuery 为您工作的解决方案。

$.post('http://www.exam.com/results/',$('form').serialize(), function(data) {
    alert(data);
});

如果 URL 只返回 html,则 html 将在函数返回的 data var 中。

于 2013-04-10T10:05:53.757 回答
1

我认为你必须尝试相同的CURL

//set POST variables
$url = 'http://www.exam.com/results/';
$fields = array(
'eid' => urlencode('900358967')
);
$fields_string = "";

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//execute post
$result = curl_exec($ch);
于 2013-04-10T09:58:53.713 回答