$a=fopen('aaa.txt',r);
while($b=trim(fgets($a))){
$b=explode(',',$b);
$ko=mysql_query("select psd from aaa where name='$b[0]'");
$vi=mysql_fetch_assoc($ko);
echo $vi['psd'];
}
获取了$b[0]='ms120'找不到数据,$b[0]自己输入值就可以搜索到
$a=fopen('aaa.txt',r);
while($b=trim(fgets($a))){
$b=explode(',',$b);
$b[0]='ms120';
$ko=mysql_query("select psd from aaa where name='$b[0]'");
$vi=mysql_fetch_assoc($ko);
echo $vi['psd'];
}
为什么fgets获取出来的字符串,出现问题?

解决方案 »

  1.   

    打印出sql"select psd from aaa where name='$b[0]'"
    比较下立马就知道了
      

  2.   

    $a=fopen('aaa.txt','r');
    while($b=trim(fgets($a))){
    $b=explode(',',$b);
    echo $b[0].'<br>';
    $c=mysql_fetch_assoc(mysql_query("select psd from aaa where name='$b[0]'"));
    echo $c['psd'].'<br>';
    }
    得出的结果为:
    C1001-7C1201-5
    C1201-5
    C1000-5
    C1000-5
    C1001-7
    C1001-7
    少了一个,我也不知道什么原因,第一行少了
    aaa.txt文件内容为
    C1001-7
    C1201-5
    C1000-5
    C1001-7
      

  3.   

    我用他插入数据库的时候,发现C1001-7的前面有这些字符,txt文件时utf-8格式的,当我另存为ansi的时候,就没有问题了,为什么这样,有没有办法用php直接变为ansi,或者直接去除这个多余的字符
      

  4.   

    $a=fopen('aaa.txt',r);
    while($b=trim(fgets($a))){
    $b=explode(',',$b);var_dump($b);
    die();看看就知道了
      

  5.   

    文件BOM的问题 用EditPlus打开就能看到了 保存为不带BOM的UTF-8就可以了 
      

  6.   

    while($b=trim(fgets($a))){貌像这里不能直接 trim 的while($b=fgets($a)) {
    $b=trim($b);
    }
    分两步试试我以前出现过这种情况,分两步就没事了