基本上我试图让我的PHP代码搜索包含Surburbs和邮政编码(3000,墨尔本)等的txt文件。用户输入一个郊区并打印出相应的邮政编码。
我认为几乎所有的方式都没有打印出来。不确定为什么。问了一些我的网络开发朋友,但他们没有帮助哈哈。 任何帮助将不胜感激.. 谢谢:))
<html>
<body>
<p>INPUT AN SUBURB NAME IN BELOW TEXT BOX AND CLICK 'SEARCH' BUTTON TO SEE
THE RESULT.</p>
<form>
Suburb:<input type="text" name="suburb"/><input type="submit"
value="search"/>
</form>
<?php
if(isset($_GET['suburb']))
{
//load email from file
$file = "postcode.txt";
if(!file_exists($file ))
{
echo "No file found!";
}
else
{
$postcodes=file($file);
for($i=0;$i<count($postcodes);$i++)
{
$postcodes[$i]=str_replace("\n","",$postcodes[$i]);
$curPostcode = explode(",", $postcodes[$i]);
if(isset($array_postcode))
{
$array_postcode+=array($curPostcode[1]=>$curPostcode[0]);
}
else
{
$array_postcode=array($curPostcode[1]=>$curPostcode[0]);
}
}
if(isset($array_postcode))
{
echo "nothing"
;}
else {
//print_r($array_postcode);
echo "The postcode of ".$_GET['suburb']." is : "
.$array_postcode['suburb'];
}}
}
?>
</body>
</html>
答案 0 :(得分:0)
假设您的文件采用以下格式:
300, ABC
400, XYZ
500, DEF
你已经设定if(isset($array_postcode))
的条件是真的,因此打印&#34;没有&#34;在每种情况下。我纠正了它,如果没有设置意味着你在文件中没有任何内容,那么它将不打印任何内容。
现在最重要的是。您必须翻转数组并将其传递给GET变量代码,以便根据代码映射位置。 请尝试以下代码。
if(!file_exists($file ))
{
echo "No file found!";
}
else
{
$postcodes=file($file);
for($i=0;$i<count($postcodes);$i++)
{
$postcodes[$i]=str_replace("\n","",$postcodes[$i]);
$curPostcode = explode(",", $postcodes[$i]);
if(isset($array_postcode))
{
$array_postcode+=array($curPostcode[1]=>$curPostcode[0]);
}
else
{
$array_postcode=array($curPostcode[1]=>$curPostcode[0]);
}
}
if(!isset($array_postcode))
{
echo "nothing"
;}
else {
$flip_array = array_flip($array_postcode);
if (isset($flip_array[$_GET['suburb']])) {
echo "The postcode of ".$_GET['suburb']." is :" .$flip_array[$_GET['suburb']];
}else{
echo "Not found.";
}
}}
}
我创建了一个函数,它将根据查询字符串返回邮政编码。它不敏感,传递大写或小写字母。
function searchSuburb($array_postcode)
{
$keys = [];
foreach ($array_postcode as $key => $value) {
$keys[] = strtoupper($key);
}
$keys = array_map('trim',$keys);
$stringKeys = array_map('strval', $keys);
$values = array_values($array_postcode);
$array_postcode = array_combine($stringKeys, $values);
$serach_key = isset($array_postcode[strtoupper($_GET['suburb'])]) ? $array_postcode[strtoupper($_GET['suburb'])] : "";
if ($serach_key) {
return "The postcode of ".$_GET['suburb']." is : " .$serach_key;
}else{
return "Not found.";
}
}
在php开启标记之后将该函数包含在您的文件中,并在下面调用它。
if(!isset($array_postcode)){
echo "nothing";
}else {
echo searchSuburb($array_postcode);
}