0

我有这个代码,我正在尝试使用,这样用户就可以通过他们的邮政编码搜索他们所在的区域。当我输入一个邮政编码来测试与气候区 1.txt 文件中的一个匹配时,它返回“找不到邮政编码”,但是当我回显它显示的数字的位置时。

有什么想法不能识别输入吗?

<?php
$file = fopen("climate-zone-1.txt", "r");
$cz1 = array();

while (!feof($file)) {
   $cz1[] = fgets($file);
}

fclose($file);

echo $cz1[2] . "<br>";

$userinput = $_GET["zip"];

echo $userinput . "<br>";

echo "Climate zone: ";

if (in_array($userinput, $cz1)) {
    echo "Climate Zone 1" ;
}
else echo "Zip code not found."

?>

当使用 PHP 构建数组时,代码可以完美运行,但是我有很多数字要添加到数组中,使用 txt 文件会快得多。

FIX更改$cz1[] = fgets($file);$cz1[] = trim(fgets($file));工作。

4

2 回答 2

0

首先..你应该使用数据库来解决这样的问题!

现在,您的输入$_GET可以包含一些字符,这些字符会被 URL 输入验证更改(例如变音符号或空格,它们会变成 %20)。

或者您的输入文件可以在邮政编码周围有一些空格(或不可打印的字符,如 \r、\n...)。

不能说更多,因为你没有提供很多信息。

于 2013-07-29T19:56:23.987 回答
0

$cz1[] = fgets($file);工作$cz1[] = trim(fgets($file));

于 2013-07-30T04:55:30.850 回答