根据订单删除所有段落(在第2,第3或第4 ......之后)

时间:2012-12-31 19:41:40

标签: php preg-replace paragraph

我得到了这个

$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和一些正则表达式,但我无法写出一个正常的。

1 个答案:

答案 0 :(得分: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>