fork download
  1. <?php
  2. $string = 'this is some code and it has bbcode in it like [image width="740" height="249" parameters=""]51lca7dn56.jpg[/image] for example and [image parameters="test" height="123" width="456"]12345.jpg[/image].';
  3.  
  4. if (preg_match_all('/\[image\b(?=(?:[^\]]*\bwidth="(\d+)"|))(?=(?:[^\]]*\bheight="(\d+)"|))(?=(?:[^\]]*\bparameters="([^"]*)"|))[^\]]*\]([^\[]*)\[\/image\]/i', $string, $match) > 0) {
  5. var_dump($match);
  6. }
  7. ?>
Success #stdin #stdout 0.02s 13064KB
stdin
Standard input is empty
stdout
array(5) {
  [0]=>
  array(2) {
    [0]=>
    string(68) "[image width="740" height="249" parameters=""]51lca7dn56.jpg[/image]"
    [1]=>
    string(67) "[image parameters="test" height="123" width="456"]12345.jpg[/image]"
  }
  [1]=>
  array(2) {
    [0]=>
    string(3) "740"
    [1]=>
    string(3) "456"
  }
  [2]=>
  array(2) {
    [0]=>
    string(3) "249"
    [1]=>
    string(3) "123"
  }
  [3]=>
  array(2) {
    [0]=>
    string(0) ""
    [1]=>
    string(4) "test"
  }
  [4]=>
  array(2) {
    [0]=>
    string(14) "51lca7dn56.jpg"
    [1]=>
    string(9) "12345.jpg"
  }
}