2014-06-12 6 views
0

모든 언어로 된 고객의 데이터가 포함 된 텍스트 입력이 있습니다 (대부분 ISO-8859-1 문자 세트에 해당하지만 일부는 러시아어는 아닙니다). 값에 큰 따옴표가 포함될 경우 텍스트 입력이 깨지지 않도록 다음을 사용합니다.htmlspecialchars : 모든 언어의 큰 따옴표를 이스케이프 처리합니다.

echo '<input type="text" value="'. htmlspecialchars($client_name, ENT_QUOTES, 'ISO-8859-1') .'" />'; 

일반 캐 커커와 잘 호환됩니다. 다른 문자 세트로 인해 문제가 발생합니다. 우리의 고객 서비스는이 양식을 사용하기 때문에 그대로 그들이 필드가 올바르게 작성되었는지 확인하기 위해, 텍스트를 볼 수 있고,

&#1058 

: 예를 들어, 러시아어로, 위의 출력은 다음과 같은 기관을 html로. 위의 코드 대신 모든 언어에서 큰 따옴표를 제거하고 보존 할 수있는 대안이 있습니까?

str_replace와 같은 함수는 큰 따옴표를 바꾸지 않으므로 코드를 위반하지 않고 표시하기 위해 찾고있는 것이 아닙니다.

나는 다음과 같은 기능을 위해 정착, 몇 가지 조사 후 당신에게

+0

왜 고객 서비스 담당자가 HTML * 소스 코드 *를보고 있습니까? HTML을 렌더링하면 일반 문자가 표시됩니다. – Quentin

+0

죄송합니다. 고객 서비스에 소스 코드가 표시되지 않고 텍스트 필드가 표시됩니다. 텍스트를 텍스트 필드 안에 올바르게 표시하고 싶습니다. – bidouillages

+0

코드는 텍스트를 필드 안에 올바르게 표시해야합니다. 만약 그들이'& # 1058'을 본다면 누군가가 처음에 그것을 타이핑하기 때문일 것입니다 (또는 여러분이 가지고있는 다른 코드는 그것을 엔티티로 변환하여 두번 이스케이프가 끝나게됩니다). – Quentin

답변

0

감사합니다

echo '<input type="text" value="'. str_replace('"','&quot;',$client_name) .'" />'; 

이 방법은 내가 다양한 언어에 문제가 없습니다.

관련 문제