fork(1) download
  1. <?php
  2.  
  3. $test = <<<TEST
  4. /* Double quotes */
  5. function("some string"); // Match: some string
  6. function("some \"string\""); // Match: some "string"
  7. function("some 'string'"); // Match: some 'string'
  8.  
  9. /* Single quotes */
  10. function('some string'); // Match: some string
  11. function('some \'string\''); // Match: some 'string'
  12. function('some "string"'); // Match: some "string"
  13.  
  14. Function can also accept parameters after string, so it also needs to match this cases:
  15.  
  16. /* Additional parameters */
  17. function("some string", "param"); // Match: some string
  18. function("some string", $param); // Match: some string
  19. TEST;
  20. preg_match_all('#\\(\\s*("((\\\\.|[^"])+)"|\'((\\\\.|[^\'])+)\'),?#s', $test, $matches);
  21. var_dump($matches[1]);
Success #stdin #stdout 0.02s 13112KB
stdin
Standard input is empty
stdout
array(8) {
  [0]=>
  string(13) ""some string""
  [1]=>
  string(17) ""some \"string\"""
  [2]=>
  string(15) ""some 'string'""
  [3]=>
  string(13) "'some string'"
  [4]=>
  string(17) "'some \'string\''"
  [5]=>
  string(15) "'some "string"'"
  [6]=>
  string(13) ""some string""
  [7]=>
  string(13) ""some string""
}