2013-07-06 9 views
0

지금은)합니다 (를 htmlentities를 통해 배열의 모든 행 ("레코드"/ 객체)의/"열"을 하나 개의 속성을 실행하려합니다 기능. 해당 속성/열에는 DOM html에 출력 될 문자열이 포함되어 있기 때문입니다.출력 배열의 모든 행의 특정 하나 개의 속성을 통해를 htmlentities()를 실행하는 방법을

그러나, 나는 원하는 행을 페치하고 및 배열을 인코딩 한 후, 배열에 JSON을 모두 넣어 이상 전체 선을 전송. 그래서 같이 : 내 테이블

+------+------+------+------+ 
|key |attr1 |attr2 | attr3| 
+------+------+------+------+ 
|1  | int |string| int | 
+------+------+------+------+ 
|2  | int |string| int | 
+------+------+------+------+ 
|... | ... | ... | ... | 
+------+------+------+------+ 

모습의

<?php 
include('connect.php'); 

$result = mysqli_query($con,"SELECT * FROM pointers WHERE `public` = 1;"); 

$rows = array(); 

while($r = mysqli_fetch_array($result)) 
    { 
     $rows[] = $r; 
    } 

echo json_encode($rows); 
mysqli_close($con); 
?> 

예 ATTR2 문자열을 저장하는 유일한 열입니다.

는 내가 선택 각 행에 대해, 그 ATTR2을 통해()를 htmlentities를 실행할 수있는 방법을 궁금해하고있다. , ()가 클라이언트 측 대해 HTMLEncode하는 방법에 해당이 ... 또한,

echo json_encode(htmlencode($rows)); 

하지만 내 출력이 표시되지 않았습니다 :

난 그냥 대해 HTMLEncode - 보내고 모든 노력을 자바 스크립트/jQuery 행/레코드를받은 후? 현재 난 쉽게 어떤 도움이 dataResponse.attr2

감사 같은 것을 사용하여 각 행/레코드의 특정 문자열에 액세스 할 수 있기 때문에! 당신이 결과 집합에서 그것을 읽을

답변

1

당신이 (당신이 그렇게 할 이유가없는 한) htmlentities 중 하나의 방법을 사용하지만, 단지 htmlspecialchars()를 사용해서는 안 이럴. 당신이해야 할 때의 요소와 배열을 구성 할 때 이것이다 : 당신은 단순히 처리 할 클라이언트 측에 보내려면이 데이터를 사용하려는 경우

while($r = mysqli_fetch_array($result)) 
{ 
    $r['attr2'] = htmlspecialchars($r['attr2'], ENT_QUOTES, 'UTF-8'); 
    $rows[] = $r; 
} 

를/자바 스크립트를 사용하여 DOM에 추가 난 그냥 것 .createTextNode()을 사용하십시오.

+0

감사합니다. 완벽하게 작동했습니다. 그리고 당신의 추가 제안에 감사드립니다! 기본적으로, 사용자가 사용자가 그렇게하기로 결정되면, HTML이 표시되지 않기 때문에, 이러한 '<스팬 클래스 = "버튼"> sometext'로, 자신의 문자열에 HTML 태그를 삽입 할 수 싶지 않았다 텍스트 및 클래스 효과가 적용됩니다. 대신 모든 특수 문자를 그대로 그대로 나타 내기를 원했습니다. 그러나 htmlspecialchars() - 귀하의 메서드 - 및 htmlentities() 같은 효과가있는 것 같았다. specialchars 사용에 대한 귀하의 제안의 주요 차이점을 신속하게 설명해 주시겠습니까? – LazerSharks

+0

'를 htmlentities()는'* 모든 * 문자가있는 반드시 htmlspecialchars '로()'는 가장 가능성이 안전하지 않은 문자를 변환 HTML 엔티티가 변환합니다. 그래서 당신의'htmlentities' 변환 문자열은 * 많이 * 더 무겁습니다 (그리고 종종 그것은 단지 필요하지 않습니다). – PeeHaa

+0

아, 알겠습니다. 고맙습니다! – LazerSharks

1

인코딩이 :

while($r = mysqli_fetch_array($result)) 
    { 
    $rows[] = $r; 
    $rows[2] = htmlentities($rows[2]); 
    } 
+0

이 완벽하게 작동, 답변 주셔서 감사합니다! – LazerSharks