【问题标题】:foreach loop not finding varforeach 循环找不到 var
【发布时间】:2017-07-04 02:29:54
【问题描述】:

所以基本上循环通过我的项目文件夹中的文本文件运行。 而我在将它们打印到网页时尝试做的是找到一个特定的 id,它是 $id 我已经尝试回显 $id 以查看是否真的存在并且它确实存在。所以我不太确定为什么这不起作用。请记住,我是 PHP 新手,所以它可能有些愚蠢:p

 <?php
    require 'steamauth/steamauth.php';
    require 'steamauth/userInfo.php';

    $id = $_SESSION['steamid'];
    $pid = $id;
    echo "pid = $pid \n" . "<br />";
    $lines = file('admins.txt');
    foreach ($lines as $line_num => $line) {
        echo "" . htmlspecialchars($line) . "<br />\n";
        if($line == $id){
          echo "found";
        }
    }
    ?>

【问题讨论】:

  • if(strpos($id,$line)!== false){ echo "found"; } 还有session_start(); 需要
  • 为什么要给$id赋值,然后再给$pid赋值?对我来说似乎有点多余
  • @Anant 您的测试会触发误报。 “102”将匹配“10210”等

标签: php loops variables foreach


【解决方案1】:

首先:-

session_start();页面代码缺失

然后

根据手册:-http://php.net/manual/en/function.file.php

使用FILE_IGNORE_NEW_LINES,如下所示:-

$lines = file('admins.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

现在检查:-

 if($line == $id){
    echo "found";
 }

或者

if(strpos($id,$line)!==false){
  echo "found";
}

【讨论】:

    【解决方案2】:

    在将行内容与 $id 进行比较之前添加修剪

    <?php
      require 'steamauth/steamauth.php';
      require 'steamauth/userInfo.php';
    
      $id = $_SESSION['steamid'];
      $pid = $id;
      echo "pid = $pid \n" . "<br />";
      $lines = file('admins.txt');
      foreach ($lines as $line_num => $line) {
            echo "" . htmlspecialchars($line) . "<br />\n";
            if(trim($line) == trim($id)){
               echo "found";
            }
      }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2016-02-20
      • 2015-03-27
      • 1970-01-01
      • 2011-06-13
      • 2021-12-25
      • 2020-02-19
      • 2017-07-13
      • 2014-12-05
      • 2018-02-28
      相关资源
      最近更新 更多