C'è una stringa che sto cercando di produrre in un modo codificato in html, e htmlentities()
function restituisce sempre una stringa vuota.utilizzando la nuova costante del php 5.4 ENT_DISALLOWED in htmlentities
So esattamente perché lo fa. Beh, non sto eseguendo PHP 5.4 ho installato l'ultimo PHP 5.3 flavor.
La domanda è come riuscirò a codificare HTML una stringa che ha sequenze di unità di codice non valide.
Secondo il manuale, ENT_SUBSTITUTE
è la strada da percorrere. Ma questa costante non è definita in PHP 5.3.X.
ho fatto questo:
if (!defined('ENT_SUBSTITUTE')) {
define('ENT_SUBSTITUTE', 8);
}
ancora senza fortuna. htmlentities
sta ancora restituendo una stringa vuota.
Ho voluto provare invece il ENT_DISALLOWED
, ma non riesco a trovare il relativo valore lungo corrispondente.
Quindi la mia domanda è di due piegato
Qual è il valore costante di PHP 5.4 di
ENT_DISALLOWED
?Come faccio a verificare che una stringa contenente caratteri non UTF-8 (come smart quotes), possa essere eliminata? - Non solo le virgolette intelligenti ma tutto ciò che causa
htmlentities()
per restituire una stringa vuota.
Se qualcuno sta cercando questo perché sta seguendo Lynda.com MYSQL Essential Training e si è imbattuto in "Uso di un errore ENT_SUBSTITUTE costante non definito" nella riga 600 in Sid.php, ti dirò in base a ciò che ho letto qui e che non sono riuscito a trovare un chiaro flag equivalente per PHP 5.3, sono andato avanti e ho cancellato quella bandiera e l'app funziona correttamente ora. Ci sono implicazioni sulla sicurezza come ha notato @hakre, ma sto lavorando su un server di sviluppo locale senza accesso al web. –