İşte aradığınız sabitler kombinasyonu kullanın.
$escaped_string = htmlspecialchars($string, ENT_QUOTES & ~ENT_COMPAT, $encoding);
Bu
& ' < >
kaçış, ama tek başına
"
bırakır olacaktır.
ENT_QUOTES & ~ENT_COMPAT
, "
iki tırnak işareti, çift tırnak eki" anlamına gelen bir bit işleme dilidir.
Bu sabitlerin nasıl tanımlandığından dolayı çalışır. 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
Neden hiç tek tırnak kaçmak isteyeyim, ancak çift tırnak? Eh, çift tırnak, ama tek tırnaklar kaçış neden tersi: çünkü bir sürü var "
çift tırnak ve sadece bir kaç '
tek tırnak, bir sopa var gibi '
-delimited string.
Bir örnek:
<div data-myobject='<?= htmlspecialchars(json_encode($myobject), ENT_QUOTES & ~ENT_COMPAT, 'UTF-8') ?>'
json_encode()
çift tırnak sürü oluşturur, bu nedenle tek tırnak ayrılmış özelliğinde sonucu sopa ve çift tırnak çıkışsız bırakmak mantıklı.
Neden buna ihtiyacınız var? Benim için bir problem gibi görünüyor. – Halcyon
sadece tek tırnaklarsa, o zaman str_replace –
[This] kullanın (http://www.php.net/manual/en/function.htmlspecialchars.php#99185) yardımcı olabilir –