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를 누릅니다. 난 내 기능 $test = countCharacterNoCK($_POST['testvalue'], 20); 인줄 반환 "22"을 호출하는 경우문자 수를 정확하게 표시합니다. mb_strlen

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

.

해결 방법? 나는 strip_tags으로 시도했지만 내 문제를 해결하지 못했습니다 ... MS Office (Word)처럼 계산할 수있는 기능을 원하지만 해결할 수 없습니까?

답변

1

나는 새 줄 '\ n'의 보이지 않는 문자를 계산하는 것 같아.

트리밍 시도해야 첫번째 대신

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

를 읽는

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

감사합니다 고마워, 방금 알아 냈어 :) 나는 당신과 함께 해결책을 찾을 것 같아. 대단히 감사합니다. –

+0

대단히 환영합니다! 좋은 하루 되세요! –

0

내가 검색하고, 내가 질문을 한 후 지금은 해결책을 발견 전체 일 : 모든 사람에게

관련 문제