我复制了一些PHP,我写了一段时间回擦洗地址。在原始页面中,它位于实时Web服务器上并且完美运行。当前脚本从我的开发机器上的命令行运行。 CLI的脚本总是抛出“指数没有定义”错误,但该指数定义,从这个代码:PHP中的索引未定义错误?
$url = 'http://production.shippingapis.com/ShippingAPI.dll?API=ZipCodeLookup&XML=';
$msg = '
<ZipCodeLookupRequest USERID="xxxxxxxxxx">
<Address ID="0"><FirmName></FirmName><Address1>' . $suite . '</Address1>
<Address2>' . $street . '</Address2>
<City>' . $city . '</City><State>' . $state . '</State>
</Address></ZipCodeLookupRequest>
';
//get the response from the USPS
$newurl = $url . urlencode($msg);
// echo $newurl;
$xml = $newurl;
$parser = xml_parser_create();
// open a file and read data
$fp = fopen($xml, 'r');
$xmldata = fread($fp, 4096);
xml_parse_into_struct($parser, $xmldata, $values);
xml_parser_free($parser);
//echo $xmldata;
//print_r($values);
if ($values[6][tag] === 'ZIP4') {
$street = $values[2][value];
$city = $values[3][value];
$state = $values[4][value];
$zip5 = $values[5][value];
$zip4 = $values[6][value];
}
else if ($values[7][tag] === 'ZIP4') {
$suite = $values[2][value];
$street = $values[3][value];
$city = $values[4][value];
$state = $values[5][value];
$zip5 = $values[6][value];
$zip4 = $values[7][value];
}
else {
$suite = '';
$street = '';
$city = '';
$state = '';
$zip5 = '';
$zip4 = '';
}
;
if ($values[2][tag] != 'ERROR') {
$verifiedBlock = ("
$suite . chr(13) . chr(10);
$street . chr(13) . chr(10);
$city $state $zip5 $zip4
");
}
else {
$verifiedBlock = ("
The address could not be verified
");
}
;
如果我做$值的print_r的,我回来的:
Array ( [0] => Array
(
[tag] => ZIPCODELOOKUPRESPONSE
[type] => open
[level] => 1
)
[1] => Array
(
[tag] => ADDRESS
[type] => open
[level] => 2
[attributes] => Array
(
[ID] => 0
)
)
[2] => Array
(
[tag] => ADDRESS1
[type] => complete
[level] => 3
[value] => FL 7
)
等等 - 我已经证实[6]和[7]总是存在。然而,总是会在这些行和if ($values[2][tag] != 'ERROR')
行中引发“索引未定义”错误。
有人可以告诉我我在这里失踪的是什么愚蠢的,明显的东西?
而不是'$ values [2] [tag]'try'$ values [2] ['tag']' – Leri
欢迎来到Stack Overflow!请正确格式化您的代码。通过在任何代码行之前缩进4个空格来插入代码块。我这次为您编写了代码格式,但下次请正确格式化。如需进一步的帮助,请参阅[编辑常见问题](http://stackoverflow.com/editing-help#code) –