2013-07-29 59 views
0

我有这个代码,我试图使用,所以用户可以通过他们的邮政编码搜索他们在哪个区域。当我输入一个邮政编码以测试与在climate-zone-1.txt文件中匹配的邮政编码时,它会返回“未找到邮政编码”,但是当我回显它显示的号码的位置时。PHP阵列搜索使用阵列的外部文件

任何不认识输入的想法?

<?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));工作。

+0

什么是climate-zone-1.txt的样子 – Orangepill

+0

只需一行邮编列表,每行一个。 – redf150flames

+0

尝试更改'$ cz1 [] = fgets($ file);'到'$ cz1 [] = trim(fgets($ file));'...在邮政编码行之后可能会有一些额外的空格 – Orangepill

回答

0

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

0

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

现在,来自$_GET的输入可以包含一些字符,这些字符通过URL输入验证(如变音符或空格变为%20)进行了更改。

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

由于您没有提供很多信息,所以不能再多告知。

+0

一步一个脚印。我不是PHP的大师,只是想让事情顺利开始。 – redf150flames

+0

另外我有限制对5个数字字符的回应的形式。 – redf150flames