0

私はこれを得た

$description =  '<p>text1</p><p>text2</p><p>text3</p><p>text4</p><p>textn</p>'

後に来るものだけを削除したい<p>text3</p>

私の結果は次のようになります。

$description = '<p>text1</p><p>text2</p><p>text3</p>'

私の推測ではpreg_replace、いくつかの正規表現を使用する必要がありますが、うまく機能するものを書くことができません。

4

1 に答える 1

2

あなたは出来る...

function str_occurance($needle, $haystack, $occurance) { 
$occurance += 2;
$arr = explode($needle, $haystack, $occurance);
unset($arr[0]);
$arr = array_values($arr);
$key = count($arr) - 1;
unset($arr[$key]);
$str = $needle . implode($needle, $arr);
return $str; 
}

きれいではありませんが、機能します。

編集:使用するには:

$description =  '<p>text1</p><p>text2</p><p>text3</p><p>text4</p><p>textn</p>';
$split = '<p>';
$return = 3;
$new = str_occurance($needle, $description, $return);
echo $new; // returns <p>text1</p><p>text2</p><p>text3</p>
于 2012-12-31T20:53:40.660 に答える