新手请教个PHP查找TXT内容并输出的问题!

zzz999zzz 2012-01-31 04:12:46
新手请教个PHP查找TXT内容并输出的问题!

1.TXT里的内容如下:
101010100=北京
101010200=海淀
101010300=朝阳
101010400=顺义
101010500=怀柔
101010600=通州
101010700=昌平
101010800=延庆
101010900=丰台
101011000=石景山
101011100=大兴
101011200=房山
101011300=密云
101011400=门头沟
101011500=平谷
101011600=八达岭


我想通过PHP来实现查询
比如http://127.0.0.1/1.php?city=北京 就能找到对应的101010100
不会PHP 只好来求助,麻烦大虾给段详细的代码!
...全文
265 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzz999zzz 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 phpnewnew 的回复:]
引用 13 楼 zzz999zzz 的回复:

引用 12 楼 jordan102 的回复:
echo urldecode("%E5%8C%97%E4%BA%AC");
输出 :北京

记得txt文件与你的php文件编码要统一,否则会乱码,或者要转化一下也可。


谢谢解答,我现在碰到的问题是
我直接用2楼的那个代码,没有任何输出,原因是查询时 汉字没有urlencode

……
[/Quote]

谢谢你,问题解决!
黄袍披身 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zzz999zzz 的回复:]

引用 12 楼 jordan102 的回复:
echo urldecode("%E5%8C%97%E4%BA%AC");
输出 :北京

记得txt文件与你的php文件编码要统一,否则会乱码,或者要转化一下也可。


谢谢解答,我现在碰到的问题是
我直接用2楼的那个代码,没有任何输出,原因是查询时 汉字没有urlencode

我不知道怎么加,PHP完全不懂!
我……
[/Quote]

在你的1.php页面输出 echo $_GET['city']; 如果是正常的中文 那么就
$city=$_GET['city'];
//$city=iconv("utf-8","gb2312",$city); //加上注释
zzz999zzz 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 jordan102 的回复:]
echo urldecode("%E5%8C%97%E4%BA%AC");
输出 :北京

记得txt文件与你的php文件编码要统一,否则会乱码,或者要转化一下也可。
[/Quote]

谢谢解答,我现在碰到的问题是
我直接用2楼的那个代码,没有任何输出,原因是查询时 汉字没有urlencode

我不知道怎么加,PHP完全不懂!
我用127.0.0.1/1.php?city=北京
查不到任何值。。。
这代码应该如何修改才对
一起混吧 2012-01-31
  • 打赏
  • 举报
回复
echo urldecode("%E5%8C%97%E4%BA%AC");
输出 :北京

记得txt文件与你的php文件编码要统一,否则会乱码,或者要转化一下也可。
zzz999zzz 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 phpnewnew 的回复:]

引用 9 楼 zzz999zzz 的回复:

引用 8 楼 phpnewnew 的回复:

引用 7 楼 zzz999zzz 的回复:

我改成 $city=UrlEncode( $_REQUEST["city"]); 也不行,求解!


你传递过来的是什么 文件是什么编码 文件内容是什么.


我用2楼的代码,不是产生乱码,是因为中文不UrlEncode就无法查询……
[/Quote]


哈哈,我不会了哈,如果用2楼的代码,应该如何修改!
黄袍披身 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zzz999zzz 的回复:]

引用 8 楼 phpnewnew 的回复:

引用 7 楼 zzz999zzz 的回复:

我改成 $city=UrlEncode( $_REQUEST["city"]); 也不行,求解!


你传递过来的是什么 文件是什么编码 文件内容是什么.


我用2楼的代码,不是产生乱码,是因为中文不UrlEncode就无法查询!
[/Quote]

UrlEncode 过来后 urldecode 解出正确的中文
zzz999zzz 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 phpnewnew 的回复:]

引用 7 楼 zzz999zzz 的回复:

我改成 $city=UrlEncode( $_REQUEST["city"]); 也不行,求解!


你传递过来的是什么 文件是什么编码 文件内容是什么.
[/Quote]

我用2楼的代码,不是产生乱码,是因为中文不UrlEncode就无法查询!
黄袍披身 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zzz999zzz 的回复:]

我改成 $city=UrlEncode( $_REQUEST["city"]); 也不行,求解!
[/Quote]

你传递过来的是什么 文件是什么编码 文件内容是什么.
zzz999zzz 2012-01-31
  • 打赏
  • 举报
回复
我改成 $city=UrlEncode( $_REQUEST["city"]); 也不行,求解!
zzz999zzz 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tottyandbaty 的回复:]
//随便写了下,注意data.txt为gb2312编码
PHP code

<?
$city=$_REQUEST["city"];
$city=iconv("utf-8","gb2312",$city);
if ($city)
{
$fp=fopen("data.txt","r");
while (!feof($fp))
{
$buffer = fget……
[/Quote]


有个问题,查找的时候不能自动转换中文编码,无法查询!

http://127.0.0.1/1.php?city=北京
将北京转换成 %E5%8C%97%E4%BA%AC
才能正常查询!
黄袍披身 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tottyandbaty 的回复:]

引用 3 楼 jordan102 的回复:

PHP code

$arr=file("demo.txt");
$str= join('&amp;',(array_map('trim',$arr)));
parse_str($str,$ar);
echo array_search($_GET['city'],$ar);


赞一个。。。不过这个$str貌似会很大,,如……
[/Quote]

北京市划分为14区4县

看样子不需要担心,不过他应该不会把整个华中给放一起吧?哈哈哈
tottyandbaty 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jordan102 的回复:]

PHP code

$arr=file("demo.txt");
$str= join('&',(array_map('trim',$arr)));
parse_str($str,$ar);
echo array_search($_GET['city'],$ar);
[/Quote]

赞一个。。。不过这个$str貌似会很大,,如果demo.txt的内容多的话
一起混吧 2012-01-31
  • 打赏
  • 举报
回复

$arr=file("demo.txt");
$str= join('&',(array_map('trim',$arr)));
parse_str($str,$ar);
echo array_search($_GET['city'],$ar);
黄袍披身 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tottyandbaty 的回复:]
//随便写了下,注意data.txt为gb2312编码
PHP code

<?
$city=$_REQUEST["city"];
$city=iconv("utf-8","gb2312",$city);
if ($city)
{
$fp=fopen("data.txt","r");
while (!feof($fp))
{
$buffer = fget……
[/Quote]

读出来后一个正则,也是可以的,不知道速度会不会慢上很多
tottyandbaty 2012-01-31
  • 打赏
  • 举报
回复

//随便写了下,注意data.txt为gb2312编码

<?
$city=$_REQUEST["city"];
$city=iconv("utf-8","gb2312",$city);
if ($city)
{
$fp=fopen("data.txt","r");
while (!feof($fp))
{
$buffer = fgets($fp);
list($code,$area)=explode("=",$buffer);


if (trim($area)==$city)
{
echo $code;
}

}
fclose($fp);

}
?>

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧