我使用jQuery指望飛一個textarea的值:獲得相同的結果爲PHP``str_len作爲jQuery的`.VAL()長()`
function count_chars() {
count_chars=$('#text_textarea').val().length;
}
...然後在提交序列化表單,通過ajax發送textarea的文本到一個php文件,然後驗證服務器端的文本。但是,我遇到了換行符和空格問題。
當然,如果我只是從textarea中得到「原樣」的文字,php會將每一個新行計爲2或4個字符(\n
,...)。所以,我試圖像這樣的東西來取代它們:
strlen(str_replace(array("\r", "\n"), ' ', $text)))
或本:
strlen(preg_replace('/\s+/', ' ', trim($text)))
但是,如果我得到了如10段和jQuery返回2500個字符,php將返回2510或2490,這取決於如果我用一個空格替換新行或將它們完全刪除。所以差異是20,但只有10個新的線......?
我錯過了什麼?我怎樣才能讓PHP返回與jQuery相同的結果?問題在哪裏,在PHP或在jQuery?
你使用什麼字符編碼?你的客戶在哪個操作系統上運行? (Windows使用與unix不同的行結束符)。 – Maerlyn 2012-08-14 10:38:16
@Maerlyn:好吧,它會運行在一個網絡服務器上,我現在不知道它是Windows還是Linux,它只是共享主機...字符集是utf8,但這裏有關係嗎? – Chris 2012-08-14 10:39:39
您可能不得不在兩個地方對換行標準化。當用戶點擊「返回」時,我認爲你不能控制默認的瀏覽器插入。 – 2012-08-14 10:39:42