将.txt文件转换为数组并进行比较

时间:2013-09-21 13:20:37

标签: php ajax

$eventnameentered= $_GET['eventnameentered'];
$eventnameentered= strtolower($eventnameentered);

$eventindatabase=file('eventname.txt');

if(in_array($eventnameentered,$eventindatabase)){
    echo 'Entered Event Name '.$eventnameentered.' Is Already Taken';
}else if($eventnameentered==''){
    echo 'Please Enter Name Of New Event';
}
else
{
    echo 'Event Name '.$eventnameentered.' Is Available ';
}   

的event.txt

gaming
coding
project

我正在使用AJAX。一切都运转正常,我只需要一些关于这个阵列的帮助。

我想比较用户提供的eventnameeventname中已存在的event.txt不要发生冲突。所以我想在数组中event.txt。我将其与in_array进行比较,如上面的代码所示,但即使我在event.tx中插入事件,也会显示Event name Available。我甚至尝试使用get_file_contents

1 个答案:

答案 0 :(得分:2)

空格导致if条件失败。你需要先trim这个空格。

$eventindatabase = file('eventname.txt');
$eventindatabase = array_map('trim', $eventindatabase);

以下是修剪空白之前和之后var_dump($eventindatabase)的输出:

在:

array(3) {
  [0]=>
  string(7) "gaming
"
  [1]=>
  string(7) "coding
"
  [2]=>
  string(7) "project"
}

之后:

array(3) {
  [0]=>
  string(6) "gaming"
  [1]=>
  string(6) "coding"
  [2]=>
  string(7) "project"
}

如您所见,前两个元素不同,这将导致以下条件评估为FALSE,从而触发else语句:

if(in_array($eventnameentered,$eventindatabase)) 

希望这有帮助!