1

PHP で文字列を分割/展開したいと思います。文字列は次のようになります。

<strong>Label</strong><p>Value</p>

この結果:

array(
    '<strong>Label</strong>',
    '<p>Value</p>'
)

これどうやってするの?

4

5 に答える 5

2

次のように実行できます。

$string = "<strong>Label</strong><p>Value</p>";
$pos = strpos($string,'<p>');
$array = array();
$array[] = substr($string, 0,$pos);
$array[] = substr($string,$pos);

または preg_match を使用:

preg_match('%(.*g>)(.*)%',$string,$array);
//$array[1] = '<strong>Label</strong>'
//$array[2] = '<p>Value</p>'
于 2013-03-07T20:40:07.083 に答える
1

pregこれは常に関数よりも高速ではありませんか?

<?php
$str = "<strong>Label</strong><p>Value</p>";
$str = explode( "g><p", $str );
$str = implode( "g>~<p", $str);
$str = explode( "~", $str );

また、タグがネストされる可能性があり、ロジックが難しくなることに注意してください。

于 2013-03-07T20:36:21.590 に答える
0

次のようなハックなことをしなければ、explode でそれを達成することはできません。

$str = "<strong>Label</strong><p>Value</p>";
$strExp = explode("<p>", $str);
$strExp[1] = "<p>" . $strExp[1];

代わりに正規表現を使用することをお勧めします。

于 2013-03-07T20:34:35.220 に答える
0

それは分割の仕組みではありません。PREG_SPLIT_DELIM_CAPTURE フラグを指定して preg_split を使用する必要があります。

于 2013-03-07T20:35:24.517 に答える
0

これでうまくいくはずです。

$string = "<strong>Label</strong><p>Value</p>";
$array = explode("\t", str_replace("><", ">\t<", $string));
于 2013-03-07T20:46:35.470 に答える