2013-07-29 86 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