0

PHPを使用して、この要素をファイルに分離する方法

例えば ​​:

##cat 1##
**
element 1
element 2
element 3
**

##cat 2##
**
element 1
element 2
element 3
**

##cat 3##
**
element 1
element 2
element 3
**

私は何度もphpのマニュアルを見て、explodeなどを試してみましたが、良い結果が得られませんでした.php send単純なループでこのすべてのコンテンツを実行し、それぞれの場合にコンテンツを##または**に分けてそれぞれを表示することができますエレメント分離?

私はこれをやろうとしますが、これを行うことができず、 foreach 、 expand 、 bucle for などで何度も試してみると、常に同じ結果が得られ、各要素がすべて表示されないため、うまくいきません

助けてくれてありがとう

4

1 に答える 1

0

あなたの質問を理解しているかどうかわかりません。上記の入力を取得して、次を生成する場合:

Array
(
    [##cat 1##] => Array
        (
            [0] => element 1
            [1] => element 2
            [2] => element 3
        )

    [##cat 2##] => Array
        (
            [0] => element 1
            [1] => element 2
            [2] => element 3
        )

    [##cat 3##] => Array
        (
            [0] => element 1
            [1] => element 2
            [2] => element 3
        )
)

これを試して:

$input_text =<<<INPUT_TEXT
##cat 1##
**
element 1
element 2
element 3
**

##cat 2##
**
element 1
element 2
element 3
**

##cat 3##
**
element 1
element 2
element 3
**
INPUT_TEXT;

$output = array();
$current = NULL;
foreach( explode( "\n", $input_text ) as $line )
{
    $line = trim( $line );
    if( empty( $line ) )
    {
        continue;
    }
    if( substr( $line, 0, 2 ) == '##' )
    {
        $current = trim( $line );
        continue;
    }
    if( substr( $line, 0, 2 ) == '**' )
    {
        continue;
    }
    if( !empty( $current ) )
    {
        $output[$current][] = $line;
    }
}
print_r( $output );
于 2013-03-11T03:37:25.267 に答える