我正在尝试使用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>
所以它将POST该值并在该页面上显示数据,但是如何使用数据获取页面源?
这可能吗?我到处搜索并试图抓住它,但我不知道如何在发布值之后抓住它。
答案 0 :(得分: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);
答案 1 :(得分:1)
我注意到你有用javascript标记的问题。所以这是一个可以使用jQuery的解决方案。
$.post('http://www.exam.com/results/',$('form').serialize(), function(data) {
alert(data);
});
如果URL仅返回html,则html将位于函数返回的数据var中。