1

文字列を (たとえば) 50 シンボル (分) ずつ分解したいのですが、単語を 2 つの部分に分割する必要はありません。

これは可能ですか?

を使用str_split()すると、最後の単語が分割されますが、これは望ましくありません。

: 文字列を 5 つの記号で分割します。

$input = 'This is example, example can be anything.';

$output[0] = 'This';
$output[1] = 'is example,';
$output[2] = 'example';
$output[3] = 'can';
$output[4] = 'be anything';
4

3 に答える 3

3

私はあなたのためにそれをする単一の組み込み関数があるとは思わないが、あなたはこのようなことをすることができる:

ここにコードパッドの例

$string = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque nec elit dui, nec fermentum velit. Nullam congue ipsum ac quam auctor nec massa nunc.";

$output = array();
while (strlen($string) > 50) {
    $index = strpos($string, ' ', 50);
    $output[] = trim(substr($string, 0, $index));
    $string = substr($string, $index);
}
$output[] = trim($string);

var_dump($output);

// array(3) {
//   [0]=>
//   string(50) "Lorem ipsum dolor sit amet, consectetur adipiscing"
//   [1]=>
//   string(55) "elit. Quisque nec elit dui, nec fermentum velit. Nullam"
//   [2]=>
//   string(43) "congue ipsum ac quam auctor nec massa nunc."
// }
于 2013-02-05T13:55:12.560 に答える
0

文字列を調べて、文字の数(number = 5)の後で、次の文字がスペースであるかどうかを確認して分割します。スペースがない場合は、分割せずに次のスペースに移動してください:-)

于 2013-02-05T13:54:46.897 に答える
0

私もあなたを理解したと思います、そしてあなたはこの関数を使うことができます:

<?php

    function str_split_len($str, $len)
    {
        if( $len > strlen($str) )
        {
            return false;
        }

        $strlen = strlen($str);
        $result = array();
        $words = ($strlen / $len);

        for( $x = 1; $x <= $len; $x++ )
        {
            $result[] = substr($str, 0, $words);
            $str = substr($str, $words, $strlen); 
        }

        return $result;
    }

    /* Example */
    $res = str_split_len("Split me !haha!", 3);
    print_r($res);
?>
于 2013-02-05T13:54:53.923 に答える