0

我无法在错误消息中返回某些字符。设置如下:

无论用户在文本字段中输入什么(如果不正确),都应该在错误消息中返回。无论是字母、逗号、& 符号……任何东西。似乎 html_entities 或 special_chars 在这里是合适的。

下面的代码块是我认为应该建立这个想法的地方。以下字符返回空白错误消息,仅附有字符串(不是有效的 4 字母国际民航组织机场代码):

+ "' &

这是有问题的代码。注释掉的 $error_str 是我想要开始工作的。

 else
 {
   //VERIFY ICAO IS IN AIRPORTS.DB
   $airport_query = "SELECT COUNT(*) AS airport_count, LAT, LONG, IATA, Name FROM airports WHERE ICAO = '$icao'";
   $airport_result = $airports_db->queryDB($airport_query);
   foreach($airport_result as $airport_row) {}
     if($airport_row["airport_count"] == 0)
     {
       $error_str = "$icao is not a valid 4-letter ICAO airport code.";
       /* $error_str =  "html_entities($icao) is not a valid 4-letter ICAO airport code."; */     
     }

     $return_array["ICAO"] = $icao;
     $return_array["IATA"] = $airport_row["IATA"];
     $return_array["airport_name"] = $airport_row["Name"];
 }

 $return_array["error"] = $error_str;

 echo json_encode($return_array);  

还要注意echo json_encode底部的。我不确定是否应该在 $error_str 或 $return_array 上执行 html_entities。

任何输入表示赞赏。

4

1 回答 1

2

这里有两个主要问题。第一个是PHP函数htmlentities名称中没有下划线,第二个是函数调用不能是字符串。

这将起作用:

$error_str = htmlentities($icao) . ' is not a valid 4-letter ICAO airport code.';

htmlentities接受一个字符串,所以运行它是$return_array行不通的。您可以htmlentities($error_str)在将其放入$return_array.

http://www.php.net/manual/en/function.htmlentities.php

于 2013-09-16T17:57:47.553 回答