Strip Tags, But Keep The First One
some text /(\<img[^\>]+\>)/i', $str, $mt)) { // gets array with the <img>s that must be stripped ($nrimg+), and removes them$remove_img= array_slice($mt[1], $nrimg); $str= str_ireplace($remove_img, '', $str); } return$str; } // Test, keeps the first two IMG tags in $str$str= 'First img: <img src="img1.jpg" alt="img 1" width="30"/>, second image: <img src="img_2.jpg" alt="img 2" width="30">, another Img tag <img src="img3.jpg" alt="img 3" width="30"/>, etc.'; $str= keepNrImgs(2, $str); echo $str; /* Output: First img: <img src="img1.jpg" alt="img 1" width="30" />, second image: <img src="img_2.jpg" alt="img 2" width="30">, another Img tag , ... etc. */
Solution 2:
You might be able to accomplish this with a complex regex string, however my suggestion would be to use preg_replace_callback, particularly if you are on php 5.3+ and here's why. http://www.php.net/manual/en/function.preg-replace-callback.php
$tagTracking = array();
preg_replace_callback('/<[^<]+?(>|/>)/', function($match) use($tagTracking) {
// your code to track tags here, and apply as you desire.
});
Post a Comment for "Strip Tags, But Keep The First One"