foreach循环找不到var

时间:2017-02-15 12:18:35

标签: php loops variables foreach

所以基本上循环运行在我的项目文件夹中的文本文件中。  我在将它们打印到网页时尝试做的是找到一个特定的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";
        }
    }
    ?>

2 个答案:

答案 0 :(得分: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";
}

答案 1 :(得分:-1)

在比较行内容之前添加修剪为$ 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";
        }
  }
?>