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 回答