2
$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 ';
}   

事件.txt

gaming
coding
project

我正在使用 AJAX。一切正常,我只需要一些关于这个数组的帮助。

我想比较eventname用户给出的并且eventname已经存在的event.txt不冲突。所以我想要event.txt一个数组。我将它与in_array上面的代码中所示进行比较,但即使我在event.txt 中插入事件,它也会显示Event name Available。我什至尝试使用get_file_contents.

4

1 回答 1

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

希望这可以帮助!

于 2013-09-21T13:24:26.050 回答