如何使用strlen()在php中查找字符串长度?

时间:2011-05-13 08:27:22

标签: php string

如何使用strlen()找不到php中字符串的长度?

22 个答案:

答案 0 :(得分:11)

我知道这是一个非常古老的问题,但这段代码对我有用。

$s = 'string';
$i=0;
while ($s[$i] != '') {
  $i++;
}
print $i;

答案 1 :(得分:5)

 $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)。

答案 2 :(得分:4)

我猜有mb_strlen()函数。

它不是strlen(),但它完成相同的工作(使用扩展字符集的额外好处)。

如果你真的想远离与strlen()有关的任何事情,我想你可以这样做:

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

我确信还有很多其他方法可以做到。真正的问题是......呃,为什么?

答案 3 :(得分:4)

让我们傻了

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

答案 4 :(得分:3)

Vaibhav Jain给出的答案将在最后一个索引上发出以下通知。

注意:未初始化的字符串偏移量

我想为此提供一个替代方案:

<?php

$str = 'India';

$i = 0;
while(@$str[$i]) {
    $i++;
}

echo 'Length of ' . $str . ' is ' . $i . '.';

答案 5 :(得分:1)

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 - 编码参数是字符编码。如果省略,将使用内部字符编码值。

答案 6 :(得分:0)

试试这个:

function length($value){

    if(empty($value[1])) return 1;

    $n = 0;
    while(!empty($value[$n+1])){

        $n++;
    }

    return $n+1;
}

答案 7 :(得分:0)

<?php
$str  = "aabccdab";
$i = 0;
$temp = array();
    while(isset($str[$i])){
        echo $str[$i];
        $count = 0;
        if(isset($temp[$str[$i]])){
            $temp[$str[$i]] = $temp[$str[$i]]+1;
        }else{
            $temp[$str[$i]] = 1;
        }
        $i++;
}
print_r($temp);
?>

答案 8 :(得分:0)

当您不想使用任何内置的php函数时,此代码将为您提供帮助。 您也可以在这里测试 http://phptester.net/

<?php
$stings="Hello how are you?";
$ctr=0;
while(1){
    if(empty($stings[$ctr])){       
                break;
    }

    $ctr++;
}
echo $ctr;

答案 9 :(得分:0)

无功能的renverser

class StringFunction {

    public function strCount($string) {
        $cpt=0;
        //isset pour cacher l'erreur
        // Notice: Uninitialized string offset
        while(isset($string[$cpt])) {
            $cpt++;
        }

        return $cpt;
    }

    public function reverseChar($str) {

        //mes indexes
        $start = 0;
        $end = $this->strCount($str)-1;     

        //Si $start est inférieur à $end
        while ($start < $end) {
            //change position du charactère
            $temp = $str[$start];
            $str[$start] = $str[$end];
            $str[$end]   = $temp;

            $start++;
            $end--;
        }

        return $str;
    }
}

$string = "Bonjour";
$a = new StringFunction();

echo $string . "<br>";
echo $a->reverseChar($string);

答案 10 :(得分:0)

只需使用以下代码即可。

<?php
     $string="Vasim";
     $i=0;
     while(isset($string[$i]))
     {
        $i++;
     }
     echo $i;  // Here $i has length of string and the answer will be for this string is 5.
?>

答案 11 :(得分:0)

$str = "Hello World";
$count= 0;
while( isset($str[$count]) && $str[$count] ) {
    $count++;
}
echo $count;

输出: 的 11

答案 12 :(得分:0)

function my_strlen($str)
{
    for($i=-1; isset($str[++$i]); );
    return $i;
}

echo my_strlen("q");

答案 13 :(得分:0)

这不使用循环,但如果strrpos在内部使用strlen,则可能面临O(n)问题。

function length($str)
{
    return strrpos($str.'_', '_', -1);
}

答案 14 :(得分:0)

这也有帮助 -

$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

答案 15 :(得分:0)

您可以使用此代码查找字符串长度,而无需使用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");
?>

答案 16 :(得分:0)

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;
}

答案 17 :(得分:0)

$str = "STRING";
$i=0; $count = 0;
while((isset($str{$i}) && $str{$i} != "")){
$i++; $count++;
}
print $count;

答案 18 :(得分:0)

这对您的服务器来说是一项繁重的工作,但却是一种处理它的方法。

function($string){
  $c=0;
  while(true){
    if(!empty($string[$c])){
      $c=$c+1;
    } else {
      break; // Prevent errors with return.
    }
  }
  return $c;
}

答案 19 :(得分:0)

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

答案 20 :(得分:0)

你也可以欺骗:

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

或者这个很有趣:

print array_sum(count_chars($string));

答案 21 :(得分:-1)

<?php

$arr = array('vadapalanai','annanager','chennei','salem','coimbatore');

$min = $arr[0];

$max = $arr[0];

foreach($arr as $key => $val){
    if (strlen($min) > strlen($val)) {
        $min = $val ;
    }
    if(strlen($max) < strlen($val)){
        $max = $val;
    }
}   
echo "The shortest array length is : " .$min. " ".strlen($min);
echo "<br>";
echo "The longest array length is: " .$max. " ".strlen($max);

 ?>