不计算空格的子字符串

时间:2012-12-12 13:01:00

标签: php

我想创建一个子字符串,其中$count只计算字母而不是空格。这就是我到目前为止所做的:

$string ="vikas tyagi php";
$string = substr($string, 0, 10);
echo $string;

输出:

vikas tyag

所需的输出(我不想计算空格):

vikas tyagi

我该怎么做?

我想要提取具有这些条件的字符串

1)基于计数字母

2)没有空格

3)字符串限制

3 个答案:

答案 0 :(得分:4)

只需计算空格并将其添加到所需的捕获长度:

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" 

答案 1 :(得分:2)

如果我理解你,你可以这样做:

<?php
    $string = "vikas tyagi";
    $lettercount = strlen(str_replace(' ', '', $string));
    echo $string . ' contains ' . $lettercount . ' letters';
?>

我已在[{1}}版本上使用strlen(),并使用str_replace()删除了空格

<强>加成

我不明白这个问题

<强>加成

这是我的第一次破解,随时修改你认为合适的地方:

$string

答案 2 :(得分:1)

$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