fork(1) download
  1. <?php
  2. $page = " <p>
  3. string
  4. <b>
  5. bold
  6. </b>
  7. <em>italic string</em>
  8. also(bold)
  9. </b>
  10. </p>";
  11.  
  12. $res1 = preg_replace('~^(\s*<(?!/))([^<]+)>(?=[^<]+\n)((?:(?!</\2>)[\s\S])*?)(?=\n *<)(?![^>]*</\2>)~m', "$1$2>$3\n$1/$2>", $page);
  13. $res2 = preg_replace('~/[^>]+>$\n\K([^<>]*?)(^\s*)(?=</([^>]+)>)~m', "$2<$3>\n$1$2", $res1);
  14.  
  15. echo $res2;
  16.  
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
 <p>
     string
 </p>
    <b>
      bold
    </b>
        <em>italic string</em>
    <b>
      also(bold)
    </b>
 <p>
 </p>