¿Cómo se puede encontrar la longitud de una cadena en php sin usar strlen()
?¿Cómo encontrar longitud de cadena en php sin usar strlen()?
Respuesta
Permite ser tonto
function stupidCheck($string)
{
$count = 0;
for($i=0; $i<66000; $i++)
{
if(@$string[$i] != "")$count++;
else break;
}
return $count;
}
tengo una serie de 66001 :( –
demasiado pesado con @ –
'string_count función ($ cadena) { $ cnt = 1; $ recuento = 0; for ($ i = 0; $ i <$ cnt; $ i ++) { si (@ $ string [$ i] = "") { $ count ++; $ cnt + = 1;} else break; } return $ count; } ' – Asif
También puede engañar con algo como:
print strtok(substr(serialize($string), 2), ":");
O éste es bastante divertido:
print array_sum(count_chars($string));
supongo que no la función mb_strlen()
.
No es strlen()
, pero realiza el mismo trabajo (con la ventaja añadida de trabajar con juegos de caracteres extendidos).
Si realmente quiere mantener alejado de cualquier cosa, incluso en relación con strlen()
, supongo que se podría hacer algo como esto:
$length = count(str_split($string));
estoy seguro de que hay un montón de otras maneras de hacerlo también. La verdadera pregunta es ... eh, ¿por qué?
function mystrlen($str)
{
$i = 0;
while ($str != '')
{
$str = substr($str, 1);
$i++;
}
return $i;
}
Sé que este es un problema muy viejo, pero este código me funcionó.
$s = 'string';
$i=0;
while ($s[$i] != '') {
$i++;
}
print $i;
Va a ser un trabajo pesado para su servidor, pero una forma de manejarlo.
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;
En lugar de escribir 'while ((isset ($ str {$ i}) && $ str {$ i}! =" ")) { $ i ++; $ count ++; } 'puede escribir' while ($ str {$ i}! = "") { $ i ++; $ count ++; if (! isset ($ str {$ i})) break; } 'para hacer que la función sea más legible. –
mb_strlen
- Obtener longitud de la cadena
$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 - La cadena que se comprueba la longitud.
codificación - El parámetro de codificación es la codificación de caracteres. Si se omite, se usará el valor de codificación de caracteres interno.
tu synatx está desactivado :-) – tucuxi
$inputstring="abcd";
$tmp = ''; $i = 0;
while (isset($inputstring[$i])){
$tmp .= $inputstring[$i];
$i++;
}
echo $i; //final string count
echo $tmp; // Read string
mientras que - Iterar la cadena de caracteres 1
por 1
$i
- da el recuento final de cadena.
isset($inputstring[$i])
- comprobar que el carácter exista (nulo) o no.
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;
}
Puede utilizar este código para encontrar la longitud de la cuerda sin utilizar la función 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");
?>
Prueba esto:
function length($value){
if(empty($value[1])) return 1;
$n = 0;
while(!empty($value[$n+1])){
$n++;
}
return $n+1;
}
Esto también puede ayudar -
$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
salida
6
La respuesta dada por Vaibhav Jain arrojará el siguiente aviso en el último índice.
Aviso: cadena sin inicializar compensado
me gustaría dar una alternativa para esto:
<?php
$str = 'India';
$i = 0;
while(@$str[$i]) {
$i++;
}
echo 'Length of ' . $str . ' is ' . $i . '.';
¿Puede explicar por qué sin @ se está produciendo "Aviso: desplazamiento de cadena no inicializado" y cómo @ está manejando este problema? – learner
'@' es un operador de control de errores utilizado en PHP. Cuando anteponemos esto a cualquier expresión, los errores que puedan ocurrir para esa expresión serán ignorados. – Aviator
Esto no utiliza bucles, pero puede enfrentar el problema de O (n) si los usos de strrpos strlen internamente
function length($str)
{
return strrpos($str.'_', '_', -1);
}
function my_strlen($str)
{
for($i=-1; isset($str[++$i]););
return $i;
}
echo my_strlen("q");
- 1. Longitud de la cadena sin usar el método de longitud()
- 2. cómo encontrar la longitud de cadena usando STRLEN en Objective C
- 3. Comprobar longitud de cadena En PHP
- 4. strlen, mb_strlen, ¿cuál usar?
- 5. Encontrar la longitud de cadena de un entero en .NET
- 6. ¿Cómo obtengo la longitud de cadena promedio en mysql? Este
- 7. Complejidad algorítmica de la función PHP strlen()
- 8. entender la función strlen en C
- 9. ¿Cómo obtengo la longitud de una cadena en Perl?
- 10. strlen() y codificación UTF-8
- 11. ¿Cómo encontrar una palabra completa en una cadena en PHP sin coincidencias accidentales?
- 12. cómo llegar longitud máxima de esta función socket_recv() en PHP
- 13. strlen() en cadena de caracteres no terminada en nulo?
- 14. Ejecutando PHP sin extensión sin usar mod_rewrite?
- 15. encontrar la "longitud de cadena" de un int
- 16. ¿Cómo encontrar una cadena en una matriz en PHP?
- 17. ¿Cuál es la longitud máxima de una cadena en PHP?
- 18. dividir cadena PHP en trozos de longitud variable
- 19. strlen() implementación en gcc
- 20. ¿Cómo usar una cadena PHP en la consulta mySQL LIKE?
- 21. strlen más rápido?
- 22. Cómo obtener longitud de cadena
- 23. Longitud de cadena de límite
- 24. strlen: ¿cómo funciona?
- 25. ¿Cómo puedo encontrar la longitud de una cadena Unicode en Perl?
- 26. ¿Cómo generar todas las permutaciones de una cadena en PHP?
- 27. Reducir una longitud de una cadena PHP e insertar una elipsis
- 28. ¿Hay una versión segura de strlen?
- 29. Buscar varias posiciones de cadena en PHP
- 30. Regex para encontrar una cadena sin terminar
Fuera de interés - ¿Por qué no quieren utilizar strlen? Problemas de codificación? –
@grim gracias sombrío – mymotherland
Es como "Quiero comer pastel pero no quiero usar Cuchillo para cortarlo, ¿hay alguna otra forma ..... !!!!!" :) – Pushpendra