Какова наилучшая практика установки атрибута html через PHP?

При выполнении этой работы в PHP можно встретить такую ​​проблему:

<span title="<?php echo $variable;?>">... 

Проблема состоит в том, что если $variable содержит двойные кавычки, ее следует изменить на \"

И это еще не все:

 <span title='<?php echo $variable;?>'>... 

В этом случае нам нужно изменить одиночные кавычки на \' , но оставить двойные кавычки как есть.

Итак, как мы можем это сделать в общей собственности?

Вы всегда хотите кодировать HTML-коды внутри атрибутов HTML, которые вы можете использовать с htmlspecialchars :

 <span title="<?php echo htmlspecialchars($variable); ?>"> 

Вероятно, вы хотите установить второй параметр ( $quote_style ) в ENT_QUOTES .

Единственный потенциальный риск состоит в том, что $variable может уже быть закодирована, поэтому вы можете установить для последнего параметра ( $double_encode ) значение false .

Ну, прежде чем вы выводите какой-либо текст в HTML, вы должны избегать его с помощью htmlspecialchars () . Поэтому просто убедитесь, что (двойная) цитата правильно изменена.

Обратите внимание на второй параметр этой функции.

Чтобы отредактировать свое редактирование [ Edit: вы удалили между тем]: когда вы размещаете динамически JavaScript на свой сайт, вам следует прежде всего хорошо знать, как он будет выглядеть. Кроме того, вы широко открываете дверь для атак XSS. Это не означает, что вам нужно знать каждую метку кавычки, но вы должны знать достаточно, чтобы решить, как вставить ее в строку, в которой вы, наконец, выведете ее в файл HTML.

За гранью этого,

 <a onclick="func(&apos;l&apos;)"> 

работает точно так же

 <a onclick="func('l')"> 

Инструмент «Бат» имеет метод StringTool :: htmlAttributes ($ arrayOfAttributes), который также выполняет эту работу.

https://github.com/lingtalfi/Bat/blob/master/StringTool.php