1

$countスペースではなく文字のみをカウントするサブストリングを作成したいと思います。これは私がこれまでに持っているものです:

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

出力:

vikas tyag

必要な出力(スペースを数えたくない):

vikas tyagi

どうすればいいですか?

それらの条件で文字列を抽出したい

1)カウントレターに基づく

2)空白なし

3)文字列制限も

4

3 に答える 3

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" 
于 2012-12-12T13:13:20.607 に答える
2

私があなたを正しく理解していれば、次のようにすることができます:

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

ここでは、使用してスペースを削除しstrlen()たバージョンで使用しました$stringstr_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);
于 2012-12-12T13:05:46.587 に答える
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

于 2012-12-12T13:02:26.500 に答える