如何使用strlen()
找不到php中字符串的长度?
答案 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);
?>