2017-02-15 71 views
2

所以基本上循环运行通过我的项目文件夹中的文本文件。 而我试图做的时,打印出来的网页是找到一个具体的ID,这将是$id我试着回显出$ id,看看是否真的存在,它是。所以我不太清楚为什么这不起作用。请记住我是新来的PHP所以它可能是一些愚蠢的:Pforeach循环没有找到var

<?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

'if(strpos($ id,$ line)!== false){ echo“found”; }'也''session_start();'需要 –

+0

为什么你给$ id分配一个值,然后把$ id的值赋给$ pid?似乎对我来说多余 – GordonM

+0

@Anant你的测试会触发误报。 “102”会匹配“10210”等 – GordonM

回答

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"; 
} 
+0

完美工作,谢谢 –

+0

@AaronFox乐于帮助你。欢呼:) :) :) –

-1

comparring到行内容的$ 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"; 
     } 
    } 
?>