我想制作一个子字符串,其中$count
只计算字母,而不是空格。这是我到目前为止所拥有的:
$string ="vikas tyagi php";
$string = substr($string, 0, 10);
echo $string;
输出:
vikas tyag
期望的输出(我不想计算空格):
vikas tyagi
我该怎么做?
我想提取具有这些条件的字符串
1)基于计数字母
2)没有空白
3)字符串限制也
我想制作一个子字符串,其中$count
只计算字母,而不是空格。这是我到目前为止所拥有的:
$string ="vikas tyagi php";
$string = substr($string, 0, 10);
echo $string;
输出:
vikas tyag
期望的输出(我不想计算空格):
vikas tyagi
我该怎么做?
我想提取具有这些条件的字符串
1)基于计数字母
2)没有空白
3)字符串限制也
只需计算空格并将它们添加到所需的捕获长度:
function spaceless_substr($string, $start, $count) {
return substr($string, $start, ($count+substr_count($string, ' ', $start, $count)));
}
$string ="vikas tyagi asd sd as asd";
echo substr($string, 0, 14);
// return: "vikas tyagi a"
echo spaceless_substr($string, 0, 14);
// return: "vikas tyagi asd"
如果我理解正确,您可以这样做:
<?php
$string = "vikas tyagi";
$lettercount = strlen(str_replace(' ', '', $string));
echo $string . ' contains ' . $lettercount . ' letters';
?>
在这里,我使用了删除空格strlen()
的版本$string
str_replace()
添加
我没看懂这个问题
添加
这是我的第一次破解,请随时修改您认为合适的地方:
$string = "vikas tyagi";
function my_substr($string, $start, $length)
{
$substr = substr($string, $start, $length);
$spaces = count(explode(' ', $substr)) - 1;
if ($spaces > 0)
{
return substr($string, $start, $length + $spaces);
}
return $substr;
}
echo my_substr($string, 0, 10);
$arr = explode(" ",$str);
$length = 10;
for ($i = 0, $currIndex = 0, $finalstring = ""; $currIndex < $length; $i++){
$finalstring .= " ".substr($arr[$i], 0, $length - $currIndex);
$currIndex += strlen($arr[$i]);
}
这是一个演示:http ://codepad.org/lv4KEsAi