好的,我认为这应该生成一个 json 响应,但没有打印出来。我错过了什么?我正在尝试将此输入发送到 url 请求,然后获取 json 响应以进行打印。
<?php
// Customize this (get ID/token values in your SmartyStreets account)
$authId = urlencode("id");
$authToken = urlencode("id");
// Address input
$input1 = urlencode($_POST["street"]);
$input2 = urlencode($_POST["city"]);
$input3 = urlencode($_POST["state"]);
$input4 = urlencode($_POST["postcode"]);
// Build the URL
$req = "https://api.smartystreets.com/street-address/?street={$input1}&city={$input2}&state={$input3}&postcode={$input4}&auth-id={$authId}&auth-token={$authToken}";
// GET request and turn into associative array
$result = json_decode(file_get_contents($req));
?>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
</head>
<body>
<div id="panel">
<form action="smarty-geocode.php" name="" method="post">
<input id="addresses" type="hidden" value="">
Street Address
<input id="street" type="textbox" value="" class="address">
<br />
City
<input id="city" type="textbox" value="" class="address">
<br />
State
<input id="state" type="textbox" value="" class="address">
<br />
Zipcode
<input id="postcode" type="textbox" value="" class="address">
<br />
Country
<input id="country" type="textbox" value="" class="address">
<br />
<input type="submit" value="submit" id="#mySubmitButton" />
</form>
</div>
<div id="map-canvas" style="height:40%;top:30px;"></div>
<div>
<?php
echo "<pre>";
print_r($result);
echo "</pre>";
?>
</div>
</body>
</html>
我没有足够的
信息来调试您的 URL 的输出 - 但是我认为您应该能够通过将其添加到页面底部来自己解决这个问题:-
<?php var_dump(file_get_contents($req)); ?>
除此之外,您的表单元素都不具有 name 属性,因此实际上不会将任何内容发布到您的脚本中。这是表单的修改版本,其中包括每个字段的名称属性:-
<form action="smarty-geocode.php" name="" method="post">
<input id="addresses" name="addresses" type="hidden" value="">
Street Address
<input id="street" name="street" type="textbox" value="" class="address">
<br />
City
<input id="city" name="city" type="textbox" value="" class="address">
<br />
State
<input id="state" name="state" type="textbox" value="" class="address">
<br />
Zipcode
<input id="postcode" name="postcode" type="textbox" value="" class="address">
<br />
Country
<input id="country" name="country" type="textbox" value="" class="address">
<br />
<input type="submit" value="submit" id="#mySubmitButton" />
</form>
希望这一点与您对 file_get_contents 命令输出的调试相结合,将帮助您解决您遇到的问题。我假设您正在将这些值替换为来自Smarty Streets的有效authId和authToken:-
$authId = urlencode("id");
$authToken = urlencode("id");