Io uso jQuery per contare il valore di una textarea al volo:.ottenere lo stesso risultato per PHP `` str_len come per jQuery `.VAL() Lunghezza()`
function count_chars() {
count_chars=$('#text_textarea').val().length;
}
... poi su inviare serializzare il modulo, inviare il testo della textarea tramite ajax a un file php che poi convalida il testo sul lato server. Tuttavia, ho avuto problemi con newline e spazi.
Ovviamente, se ottengo il testo "così com'è" dalla textarea, php conterrà ogni nuova riga come due o 4 caratteri (\n
, ...). Così ho cercato di sostituirli con qualcosa di simile:
strlen(str_replace(array("\r", "\n"), ' ', $text)))
o questo:
strlen(preg_replace('/\s+/', ' ', trim($text)))
Tuttavia, se ho ottenuto per esempio 10 paragrafi e jQuery restituisce 2500 caratteri, php restituirà 2510 o 2490, a seconda che sostituisca nuove linee con uno spazio o le rimuova completamente. Quindi la differenza è 20, ma ci sono solo 10 nuove linee ...?
Cosa mi manca? Come posso ottenere php per restituire lo stesso risultato di jQuery? Dov'è il problema, in php o in jQuery?
Quale codifica di carattere usi? Su quale sistema operativo viene eseguito il tuo client? (Windows utilizza terminazioni di linea diverse da Unix). – Maerlyn
@Maerlyn: beh, funzionerà su un server web dove non ho idea in questo momento se è Windows o Linux, è solo hosting condiviso ... il set di caratteri è utf8, ma è importante qui? – Chris
Probabilmente dovrai normalizzare i line feed in entrambi i posti. Non penso che tu possa controllare quale browser inserisce per impostazione predefinita quando l'utente fa clic su "Invio". –