所以我是PHP的新手,我正在努力完成一些非常简单的事情.将文本文件导入到数组中,让foreach遍历该数组以查找值,并在找到时打印该值.
这是我到目前为止所尝试的:
$testers = file('test.txt');
foreach ($testers as $test) {echo $test . "<br />";}
Run Code Online (Sandbox Code Playgroud)
这很好用,每行都打印出来.完善.然后我添加一个IF语句.
$testers = file('test.txt');
foreach ($testers as $test) {if ($test){echo $test . "<br />";}}
Run Code Online (Sandbox Code Playgroud)
工作正常,似乎是返回数据.现在,如果我尝试添加一个运算符,它就会崩溃.
$testers = file('test.txt');
foreach ($testers as $test) {if ($test == "One"){echo $test . "<br />";}}
Run Code Online (Sandbox Code Playgroud)
我应该说,文本文件中包含从"一"到"六"的每一行的数字我也尝试过:
$testers = file('test.txt');
foreach ($testers as $test) {if ($test === "One"){echo $test . "<br />";}}
Run Code Online (Sandbox Code Playgroud)
这也没有回复......
任何见解都会很棒!谢谢!
我到底错过了什么?为什么这个if语句没有返回我正在寻找的值?!
您的问题是因为file()默认情况下会在每行中包含换行符.因此,平等的比较将失败.
你可以使用:
$testers = file('test.txt', FILE_IGNORE_NEW_LINES);
Run Code Online (Sandbox Code Playgroud)
即添加标志,以便PHP不会在生成的数组项中包含换行符.
如果你不想列出空行,那就有相应的FILE_SKIP_EMPTY_LINES标志,所以:
$testers = file('test.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
Run Code Online (Sandbox Code Playgroud)