我想编写一个PHP脚本,在运行时,设置页面here上的下拉菜单的值,然后按“获取按钮”提交这些值。
这应链接到另一个页面(http://voyager.gsfc.nasa.gov/cgi-bin/heliopause_all),我希望PHP脚本返回其中。
我没有尝试过这个,因为我的PHP知识非常有限,所以我想问这是否可能以及我需要学习的PHP才能做到这一点?
查看源代码,只需从JavaScript发出POST请求就可以了吗?
答案 0 :(得分:1)
我有过第一个想法。 使用curl进行POST:http://voyager.gsfc.nasa.gov/cgi-bin/heliopause_all
使用这些POST参数
average:6hour
syear:9999
smonth:9999
sday:9999
eyear:9999
emonth:9999
eday:9999
sat:1
mnemonic:IPGH
duration:3-months
outputType:list
timeFormat:ISO
最后一步是解析响应。
代码:
<?php
$url = 'http://voyager.gsfc.nasa.gov/cgi-bin/heliopause_all';
$parameters_str = '';
$parameters = array(
'average'=>'6hour',
'syear'=>'9999',
'smonth'=>'9999',
'sday'=>'9999',
'eyear'=>'9999',
'emonth'=>'9999',
'eday'=>'9999',
'sat'=>'1',
'mnemonic'=>'IPGH',
'duration'=>'3-months',
'outputType'=>'list',
'timeFormat'=>'ISO'
);
foreach ($parameters as $k => $v) {
$parameters_str .= $k . '=' . $v . '&';
}
rtrim($parameters_str, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, count($parameters));
curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters_str);
curl_setopt($ch, CURLOPT_HEADER, false);
$result = curl_exec($ch);
curl_close($ch);
echo $result;