fork download
  1. <?php
  2.  
  3. $xx='<p>...</p>
  4. <p>...</p>
  5. <table>
  6. <tr>
  7. <td><p>...</p></td>
  8. <td><p>...</p></td>
  9. </tr>
  10. </table>
  11. <p>...</p>';
  12.  
  13. $mask='<<<%s>>>';
  14. $pl=array();
  15.  
  16. '~<table>.*?</table>~is',
  17. function($m) use (&$pl,$mask){
  18. $pl[]=$m[0];
  19. return sprintf($mask,count($pl));
  20. },
  21. $xx
  22. );
  23.  
  24. $tt=preg_replace('/<\/p>/', '</p>text', $yy);
  25.  
  26. '~'.sprintf(preg_quote($mask,'~'),'(.*?)').'~si',
  27. function($m) use ($pl){
  28. return $pl[$m[1]-1];
  29. },
  30. $tt
  31. );
  32. print_r($zz);
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
<p>...</p>text
<p>...</p>text
<table>
<tr>
<td><p>...</p></td>
<td><p>...</p></td>
</tr>
</table>
<p>...</p>text