Hay una cadena que estoy tratando de dar salida en una forma htmlencoded, y la htmlentities()
function siempre devuelve una cadena vacía.usando la nueva constante de php 5.4 ENT_DISALLOWED en htmlentities
Sé exactamente por qué lo hace. Bueno, no estoy ejecutando PHP 5.4 Obtuve el último sabor de PHP 5.3 instalado.
La cuestión es cómo voy a poder htmlencode una secuencia que tiene secuencias de unidad de código no válidas.
De acuerdo con el manual, ENT_SUBSTITUTE
es el camino a seguir. Pero esta constante no está definida en PHP 5.3.X.
Hice esto:
if (!defined('ENT_SUBSTITUTE')) {
define('ENT_SUBSTITUTE', 8);
}
sigue sin suerte. htmlentities
sigue devolviendo cadena vacía.
Quería probar ENT_DISALLOWED
en su lugar, pero no puedo encontrar su valor largo correspondiente para ello.
Así que mi pregunta es de dos plegados
¿Cuál es el valor constante de PHP 5.4 de
ENT_DISALLOWED
?¿Cómo me aseguro de que una cadena que contiene caracteres que no sean UTF-8 (como smart quotes) se puede borrar de ellos? - No solo las comillas inteligentes, sino cualquier cosa que provoque que
htmlentities()
devuelva una cadena en blanco.
Si alguien está buscando esto porque está siguiendo el entrenamiento esencial de MYSQL de Lynda.com y se encontró con el error "Uso de la constante indefinida ENT_SUBSTITUTE" en la línea 600 en Sid.php, le diré en base a lo que he leído aquí y que no pude encontrar una bandera equivalente clara para PHP 5.3, continué y borré esa bandera y la aplicación funciona bien ahora. Hay implicaciones de seguridad como señaló @hakre, pero estoy trabajando en un servidor de desarrollo local sin acceso a la web. –