Php 发布值并获取页面源
我正在尝试使用html表单向页面发布一个值,并获取该页面的源代码 我可以使用Php 发布值并获取页面源,php,javascript,html,Php,Javascript,Html,我正在尝试使用html表单向页面发布一个值,并获取该页面的源代码 我可以使用$html=file\u get\u html('http://www.exam.com/results/'); 但在获取资源之前,我需要先将值发布到该页面,然后获取源代码 假设我应该发布值的另一页是http://www.exam.com/results/ 我创建了一个提交价值的表单 <form method="post" action="http://www.exam.com/results/"> <
$html=file\u get\u 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>
因此,它将发布值并在该页面上显示数据,但是如何获取包含数据的页面源呢
这可能吗?我到处搜索并试图抓取它,但我不知道在发布值后如何抓取。我想你必须用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);
我注意到你用javascript标记了这个问题。因此,这里有一个使用jQuery的解决方案
$.post('http://www.exam.com/results/',$('form').serialize(), function(data) {
alert(data);
});
如果URL仅返回html,则html将位于函数返回的数据变量中。对于页面源,您的意思是什么?你能再解释一下吗?我想你需要使用cURL。使用cURL将值发布到表单并返回生成的页面源代码。如果我理解了你想获取发帖来源页面的源代码的问题?@chandresh_cool:就像这样,我会在学校的网站上发布一个考试id,这样它就会在该页面上显示考试结果,如果我能抓到带有结果的页面源代码,我可以过滤结果部分并在我的网站上显示结果。我认为当你谈论PHP(显然,它也有它的源代码,你在发布一些东西后无法获得),而实际上你想要的是结果HTML(源代码),你用“页面的源代码”这个词制造了不必要的混乱。嗨,它给出了一个错误-注意:未定义的变量:C:\wamp\www\results\1\1中的字段\u字符串。php@naveencgr8忘了现在初始化它(检查:)似乎它可以工作,但它不显示结果,它显示输入考试id的正常文本框。。表示该值未按预期发布。@naveencgr8使用print\r($result)
检查它返回的内容。@naveencgr8学校网站可能会受到“假”发布操作的保护。。。不确定你想做的事是否合法。。。除非学校要求你入侵他们的网站获取考试分数……非常感谢,但这对我来说并不奏效,而且我对java不太熟悉,不知怎的,我用PHP解决了这个问题。感谢您的时间@brainfeeder.:)@没问题。上面是JavaScript。与Java不同;)是的,我知道,对不起,我的坏…:):)