저는 소행성에 대한 데이터를 요청하고 결과를 얻는 컬 기능이 있습니다. 현재 나는 결과에 대한 날짜 매개 변수를 코딩하고 있습니다. 사용자가 선택한 날짜를 입력하고 결과를 얻을 수 있기를 바랍니다. 어떻게 이것을 추가 할 수 있을까요? Curl을 처음 사용하고 벽을 계속 칠 수 있습니다. 코드는 다음과 같습니다.Curl 매개 변수를 매개 변수로 전달합니다.
<?php
session_start();
// Method: POST, PUT, GET etc
// Data: array("param" => "value") ==> index.php?param=value
function CallAPI($method, $url, $data = false)
{
$curl = curl_init();
switch ($method) {
case "POST":
curl_setopt($curl, CURLOPT_POST, 1);
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
case "PUT":
curl_setopt($curl, CURLOPT_PUT, 1);
break;
default:
if ($data)
$url = sprintf("%s?%s", $url, http_build_query($data));
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);
if ($result === FALSE) {
die(curl_error($curl));
}
curl_close($curl);
return $result;
}
$params = array(
'start_date' => '01/03/2016',
'end_date' => '02/03/2016',
'api_key' => 'demo key'
);
$data = json_decode(callAPI('GET', 'https://api.nasa.gov/neo/rest/v1/feed', $params));
//var_dump($data);
echo "<h1>Near-Earth Object (NEO) Report between " . $params['start_date'] . " and " . $params['end_date'] . "</h1>";
foreach ($data->near_earth_objects as $date => $count) {
echo "<p>" . sizeof($count) . " objects detected on $date</p>";
echo "<ol>";
foreach ($data->near_earth_objects->$date as $near_earth_object) {
echo "<li>" . $near_earth_object->name . " <a href='" . $near_earth_object->nasa_jpl_url . "'>" . $near_earth_object->nasa_jpl_url . "</a><br>";
echo "Estimated Diameter: " . $near_earth_object->estimated_diameter->meters->estimated_diameter_min . "-" . $near_earth_object->estimated_diameter->meters->estimated_diameter_max . " metres<br>";
echo "<ul>";
foreach ($near_earth_object->close_approach_data as $close_approach) {
echo "<li>Close approach on " . $close_approach->close_approach_date . " velocity " . $close_approach->relative_velocity->kilometers_per_hour . " km/h " . "missing " . $close_approach->orbiting_body . " by " . $close_approach->miss_distance->kilometers . " km</li> ";
}
echo "</ul></li>";
}
echo "</ol>";
}
?>
HI Jim 도움을 주셔서 감사합니다. 사용자가 페이지에서 날짜를 입력 할 수있게하려면 GET 메서드를 다음과 같이 사용합니다.
–startDate를 대신 사용하도록 코드를 변경하지 않는 한'name = "startDate"'입력은'name = "start"'가됩니다. – Jim
안녕 짐 더 이상 도와 드릴까요? 사용자가 시작 날짜를 입력 할 수 있도록 함수를 추가하고 종료 날짜를 7 일로 설정하는 코드를 추가했지만 사용자가 날짜를 추가하기 전에 페이지가로드됩니다. 도와 줘. –