对于我正在开发的系统,我需要以编程方式转到特定页面。在表单中填写一个字段(我知道输入元素的id和名称),提交并存储结果。
我确实有权从网站上获取信息。
我遇到的问题是,我认为该脚本有效,但由于外部表单的“操作”重定向到同一页面,并将结果显示在表格中,它只是尝试将我的个人网页重定向到同一目录,当然我的服务器上不存在。
任何帮助都表示赞赏,这是迄今为止我所拥有的:
//extract data from the post
extract($_POST);
//set POST variables
//URL IS SET, I HAVE JUST TOOK IT OUT OF THIS CODE SNIPPET
$urltopost = 'blahblah.com';
$datatopost = array (
's_3_2_5_0' => 0130016825566667, 'SWEFo' => 'SWEForm3_0', 'SWEField' => 's_3_1_0_0', 'SWENeedContext' => 'true',
'W' => 't', 'SWECmd' => 'InvokeMethod', 'SWEMethod' => 'SearchForLicence', 'SWESP' => 'false', 'SWEDIC' => 'false',
'SWEReqRowId' => '0','SWEView' => 'LDL+Licence+Query+View','SWEC' => '3','SWEBID' => '1363349905','SWEGHOTO' => 'true',
'SWETS' => '1363349913267', 'SWEApplet' => 'LDL+Query+Licences');
$ch = curl_init ($urltopost);
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $datatopost);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
$returndata = curl_exec ($ch);
echo $returndata;
答案 0 :(得分:1)
表单返回带有执行重定向的JavaScript的HTML。
window.location.replace("/web/start.swe?SWECmd=GotoView&SWEView=LDL+Asset+Query+Results+View&SWERF=1");
您需要在输出之前从$ returndata中删除它。无论如何,HTML中还有许多其他相对URL,例如图像的URL。
您最好从结果中提取数据并生成自己的HTML页面(搜索“使用PHP从HTML中提取数据”)。