Как найти длину строки в php без использования strlen ()?

Как вы можете найти длину строки в php без использования strlen() ?

Я знаю, что это довольно старая проблема, но эта часть кода работала для меня.

 $s = 'string'; $i=0; while ($s[$i] != '') { $i++; } print $i; 
  $inputstring="abcd"; $tmp = ''; $i = 0; while (isset($inputstring[$i])){ $tmp .= $inputstring[$i]; $i++; } echo $i; //final string count echo $tmp; // Read string 

while – Итерировать строковый символ 1 на 1

$i – дает окончательное количество строк.

isset($inputstring[$i]) – проверка символа существует (null) или нет.

Давайте будем глупы

 function stupidCheck($string) { $count = 0; for($i=0; $i<66000; $i++) { if(@$string[$i] != "")$count++; else break; } return $count; } 

Я предполагаю, что mb_strlen() функция mb_strlen() .

Это не strlen() , но он выполняет ту же работу (с добавленным бонусом к работе с расширенными наборами символов).

Если вы действительно хотите держаться подальше от всего, что связано с strlen() , я думаю, вы могли бы сделать что-то вроде этого:

 $length = count(str_split($string)); 

Я уверен, что есть много других способов сделать это. Реальный вопрос … ну, почему?

Ответ, данный Вайбхавом Джаином, выдает следующее уведомление по последнему индексу.

Примечание. Неинициализированное смещение строки

Я хотел бы дать альтернативу для этого:

 <?php $str = 'India'; $i = 0; while(@$str[$i]) { $i++; } echo 'Length of ' . $str . ' is ' . $i . '.'; 

mb_strlen – Получить длину строки

  $string ='test strlen check'; print 'mb_strlen(): ' . mb_strlen( $string, 'utf8' ) . "\n\n"; 

synatx: int mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )

str – Строка проверяется на длину.

encoding – параметр кодирования – это кодировка символов. Если он опущен, будет использоваться значение внутреннего кодирования символов.

Вы также можете обманывать что-то вроде:

 print strtok(substr(serialize($string), 2), ":"); 

Или это довольно забавно:

 print array_sum(count_chars($string)); 
 function mystrlen($str) { $i = 0; while ($str != '') { $str = substr($str, 1); $i++; } return $i; } 

Это будет тяжелая работа для вашего сервера, но способ справиться с этим.

 function($string){ $c=0; while(true){ if(!empty($string[$c])){ $c=$c+1; } else { break; // Prevent errors with return. } } return $c; } в function($string){ $c=0; while(true){ if(!empty($string[$c])){ $c=$c+1; } else { break; // Prevent errors with return. } } return $c; } 
 $str = "STRING"; $i=0; $count = 0; while((isset($str{$i}) && $str{$i} != "")){ $i++; $count++; } print $count; 
 function findStringLength($string) { $length = 0; $lastStringChar1 = '1'; $lastStringChar2 = '2'; $string1 = $string . $lastStringChar1; $string2 = $string . $lastStringChar2; while ($string1[$length] != $lastStringChar1 || $string2[$length] != $lastStringChar2) { $length++; } return $length; } 

Вы можете использовать этот код для нахождения длины строки без использования функции strlen ().

 <?php function stringlength($withoutstringlength) { $n = 0; while(substr($withoutstringlength, $n, $n+1) != '')//General syntax substr(string,start,length) { $n++; } echo $n; } stringlength("i am a php dev"); ?> 

Попробуй это:

 function length($value){ if(empty($value[1])) return 1; $n = 0; while(!empty($value[$n+1])){ $n++; } return $n+1; } в function length($value){ if(empty($value[1])) return 1; $n = 0; while(!empty($value[$n+1])){ $n++; } return $n+1; } 

Это также может помочь –

 $s = 'string'; $temp = str_split($s); // Convert a string to an array by each character // if don't want the spaces $temp = array_filter($temp); // remove empty values echo count($temp); // count the number of element in array 

Вывод

 6 

Это не использует циклы, но может столкнуться с проблемой O (n), если strrpos использует strlen внутренне.

 function length($str) { return strrpos($str.'_', '_', -1); } 
 function my_strlen($str) { for($i=-1; isset($str[++$i]); ); return $i; } echo my_strlen("q");