fork download
  1. <?php
  2.  
  3. $string = "[text1][123] [text2][456][type]";
  4. $s = preg_replace_callback("/\[([^]]+)(]*)]\[([0-9]+)](?:\[([^]]+)])?/", function($m) {
  5. return !empty($m[4]) ? "<a href='" . $m[3] . "' type='" . $m[4] . "'>" . $m[1] . $m[2] . "</a>" :
  6. "<a href='" . $m[3] . "'>" . $m[1] . $m[2] . "</a>";
  7. }, $string);
  8. echo $s;
Success #stdin #stdout 0.02s 82944KB
stdin
Standard input is empty
stdout
<a href='123'>text1</a> <a href='456' type='type'>text2</a>