2013-12-17 2 views
0
function countCharacterNoCK($contentVar, $maximumChars){ 

     $countThisString = strip_tags($contentVar); 

     $umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/"); 
     $replace = Array("a","o","u","A","O","U","s"); 
     $countThisString1 = preg_replace($umlaute, $replace, $countThisString); 

     $lenght = mb_strlen(html_entity_decode($countThisString1, ENT_QUOTES, 'UTF-8')); 

     if($lenght < $maximumChars+1){ 
      return TRUE; 
     }else{ 
      return $lenght; 
     } 
} 

Эта функция не работает должным образом. Проблема в том, что у меня есть <textarea>, в котором я могу нажать Enter.Подсчет текстовых выражений правильный php mb_strlen

<textarea name="testvalue"> 
12345 1234 
1234512345 
</textarea> 

, если я называю свою функцию $test = countCharacterNoCK($_POST['testvalue'], 20); it'll возвращение "22".

Как это решить? Я пробовал это с strip_tags, но он не решил мою проблему ... Я хочу, чтобы функция считалась MS Office (Word), но не может решить эту проблему ... любые подсказки?

ответ

1

Я думаю, что он подсчитывает невидимый характер новых линий '\ n'.

вы должны попытаться обрезать первый, что вместо

$temporarystring =trim($countThisString1); 
$lenght = mb_strlen(html_entity_decode($temporarystring, ENT_QUOTES, 'UTF-8')); 
+0

Спасибо, я только что узнал :) Я думаю, что пойду с тобой. Спасибо вам большое, сэр. –

+0

Добро пожаловать! хорошего дня! –

0

Весь день я искал, и теперь после того, как я задал вопрос, я нашел решение:

$umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/",**"~[\r\n]+~"**); 
$replace = Array("a","o","u","A","O","U","s",**""**); 

Спасибо за чтение каждому

 Смежные вопросы

  • Нет связанных вопросов^_^