2014-11-07 2 views
2

Я пытаюсь найти кол следующий текст в PHP с использованием strlen() функцииPHP StrLen() аномальное поведение в enterkey кол

<?php 
    $a=" VII,C :06/11 ENG:TRANSLATION HUMAN BODY STRUCTURE 
    TAM:FINISH CW &PULAVAR BOOK 
    MAT:LEARN LN-1 
    SOC:GEO:-1 CHOOSE,FILL UPS&MATCH 
    SCI:MATTER&ITS NATURE. 
    "; 
?> 

возвращает 155 символов длиной.

вы можете запустить образец здесь http://codepad.org/qIJ0fBEj

и я удалил пять ввода пробелов и запустить код, приведенный ниже,

<?php 
$a=" VII,C :06/11 ENG:TRANSLATION HUMAN BODY STRUCTURETAM:FINISH CW &PULAVAR BOOKMAT:LEARN LN-1SOC:GEO:-1 CHOOSE,FILL UPS&MATCHSCI:MATTER&ITS NATURE."; 
echo strlen($a); 
?> 

проверка образец здесь http://codepad.org/JDFy6Y1t

Он возвращает 145. Как в 5 введите ключи занимает 10 счет?

ответ

4

Держу пари, что этот вход поступает с компьютера с ОС Windows. Новая линия на самом деле представляет собой возврат каретки (\r) и новый символ линии (\n). Таким образом, два символа для каждой новой строки.

+0

спасибо. но я могу решить эту проблему ?? – Akilan

+0

Я хочу получить фактическое количество нажатой клавиши ввода. вместо 155 я хочу 150. – Akilan

+0

Затем удалите все возвраты каретки, прежде чем делать счет. Вы даже можете использовать 'preg_match()' тоже. –

1

+1 для Джона, возврат каретки - проблема. Вы можете использовать str_replace для удаления всех возвратов каретки из строки.

$a = str_replace("\r\n", "\n", $a); // in windows 
Смежные вопросы