여기 당신이 찾고있는 상수의 조합이다 사용합니다.
$escaped_string = htmlspecialchars($string, ENT_QUOTES & ~ENT_COMPAT, $encoding);
이
은
& ' < >
을 탈출하지만, 혼자
"
잎됩니다.
ENT_QUOTES & ~ENT_COMPAT
은 "
두 따옴표 - 큰 따옴표 빼기"을 의미하는 비트 조작 언어입니다.
이 상수가 정의 된 방식으로 인해 작동합니다. php-src/ext/standard/html.h
#define ENT_HTML_QUOTE_NONE 0
#define ENT_HTML_QUOTE_SINGLE 1
#define ENT_HTML_QUOTE_DOUBLE 2
#define ENT_COMPAT ENT_HTML_QUOTE_DOUBLE
#define ENT_QUOTES (ENT_HTML_QUOTE_DOUBLE | ENT_HTML_QUOTE_SINGLE)
#define ENT_NOQUOTES ENT_HTML_QUOTE_NONE
왜 당신이 이제까지 작은 따옴표를 탈출 할 것이다, 그러나 따옴표? 자, 이중 따옴표를 피할 수있는 이유의 반대입니다. 작은 따옴표는 사용하지 마십시오. "
큰 따옴표와 작은 따옴표가 하나만있는 문자열이 있으므로, 작은 따옴표를 '
개 붙이면됩니다. '
-delimited string.
예 :
<div data-myobject='<?= htmlspecialchars(json_encode($myobject), ENT_QUOTES & ~ENT_COMPAT, 'UTF-8') ?>'
json_encode()
따옴표를 많이 만들고, 그래서 작은 따옴표로 구분 된 속성에 결과를 충실하고, 큰 따옴표는 이스케이프 떠나 의미가 있습니다.
왜 필요합니까? 그것은 나에게 문제처럼 보입니다. – Halcyon
작은 따옴표 인 경우 str_replace를 사용하십시오. –
[This] (http://www.php.net/manual/en/function.htmlspecialchars.php#99185)가 도움이 될 수 있습니다. –