Специальные символы PHP Html предотвращают двукратное преобразование «

#php #html

#php #HTML

Вопрос:

Я хочу убедиться, что каждый специальный символ в моих данных уже преобразован в объекты html с помощью htmlspecialcharacters , но затем я заметил, что при каждой замене специального символа на объекты html у него есть символ «amp;» , в то время как сам символ «amp;» заменяется на amp;amp; .

Итак, как мне использовать htmlspecialcharacters несколько раз для одних и тех же данных без многократного преобразования «amp;».

Пример:
Нет преобразования : amp;
1-е преобразование : amp;amp;
2-е преобразование : amp;amp;amp;

Комментарии:

1. » Итак, как мне использовать htmlspecialcharacters несколько раз для одних и тех же данных » … короткий ответ заключается в том, что вы не применяете это более одного раза. Я имею в виду, зачем вам это? Вы не должны хранить данные в базе данных подобным образом, вы должны использовать это только (один раз) при выводе html клиенту.

2. Хм, возможно, мне нужно заново подумать о дизайне, вы правы . Но в php Web нет предупреждения о том, чтобы не использовать его дважды, поэтому мой вопрос все еще остается.

3. Что ж, в защиту руководства по php, оно не может охватить все случаи, когда что-то НЕ следует использовать 😉

4. Это одно и то же правило для многих из этих кодировщиков … не выполняйте их дважды. Например, не используйте urlencode дважды для одного и того же значения. Не делайте json_encode дважды, не делайте htmlentities и т.д. Потому что в конечном итоге вы просто искажаете данные так, что отступать становится настоящей проблемой.