2013-09-16 2 views
0

오류 메시지에서 특정 문자를 반환하는 데 문제가 있습니다. 설정은 다음과 같습니다.PHP : html_entities를 올바르게 사용하기. 오류 메시지에 모든 문자를 반환하고 싶습니다.

사용자가 텍스트 필드에 입력 한 내용 (잘못된 경우)은 오류 메시지에 반환해야합니다. 편지, 쉼표, 앰퍼샌드 ...이든간에. html_entities 또는 special_chars가 여기에 적합 할 것 같습니다.

다음 코드 블록은이 아이디어를 설정해야하는 곳입니다. 다음 문자가 부착 된 (유효한 4 문자 ICAO 공항 코드가 아닙니다) 단지 문자열로 빈 오류 메시지를 반환 :.이 문제의 코드가

+ " ' &

이다가를 주석 $의 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_arr에 HTML_ENTITIES을 수행해야하는지 확실하지 않다 찬성.

모든 의견을 환영합니다.

+0

이것은 기능에 있습니까? –

+0

@blo 그렇습니다. – DnfD

+0

그러면 배열을 반향해서는 안되며'return $ return_array' 그리고 popthestack의 답을 확인하십시오. 구문 오류가 있습니다 –

답변

2

두 가지 주요 문제가 있습니다. 첫 번째는 PHP 함수가 이름에 밑줄이없는 htmlentities이고 두 번째는 함수 호출이 문자열에있을 수 없다는 것입니다.

이 작동합니다 :

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

htmlentities 문자열을 받아, 그렇게 작동하지 않습니다 $return_array에 실행. 당신은 $return_array에 넣기 전에 htmlentities($error_str)을 할 수 있습니다.

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

+0

답장을 보내 주셔서 감사합니다. 이것이 이상한 일인지 보자. 당신이 제안한 것을해라. 나는 텍스트 필드에 XYZ &를 입력한다고해라. 그러면 "XYZ는 유효한 4 자 ICAO 공항 코드가 아닙니다."가 반환됩니다. 왜 이런거야? – DnfD

+0

'htmlentities'를 사용하지 않아도 "XYZ &"를 반환합니까? 그것은 다른 곳에서 걸러 낼 수 있습니다. – popthestack

+0

예 htmlentities를 사용하지 않고 "XYZ는 유효한 4 자 ICAO 공항 코드가 아닙니다."를 반환합니다. – DnfD

관련 문제