Necesito un script que me de un array del parámetro pasado a la función prueba() de una página en concreto. Me explico, si en la página prueba.php hay <span><?php prueba("hola"); ?></span><p><?php prueba("adios"); ?></p> necesito que me capture en un array "hola" y "adios".
He creado un script que recorre el archivo y mediante la función preg_match() captura lo que quiero:
Código PHP:
   function get_prueba()
{
    $file = "test.php";
    //más codigo de abrir el fichero
    $patron = '/prueba\((\"|\')(.+)(\"|\')\)\;/';
    while(!feof($file))
    {
        if(preg_match($patron, fgets($file), $coincidencias))
        {
            $keys[$i] = $coincidencias[2];
            $i++;
        }    
    }
    fclose($file);
    print_r($keys);
} 
    Código PHP:
  
<table>
    <tr>
        <td><?php prueba('hola'); ?></td>
        <td><?php prueba("que tal"); ?></td>        
        <td><?php prueba("adios"); ?></td>
    </tr>
</table>    Cita:   
El problema viene cuando encuentra más de una función en la misma linea, algo como esto:Array ( [0] => hola [1] => que tal [2] => adios )
 Código PHP:
  
<table>
    <tr>
        <td><?php prueba('hola'); ?></td><td><?php prueba("que tal"); ?></td>    
        <td><?php prueba("adios"); ?></td>
    </tr>
</table>    Cita:   
Como tengo que modificar el patrón para que me salga bien con más match en una misma linea?Array ( [0] => hola'); ?> adios )
 Muchas gracias de antemano.
 
 
 Expresión regular: falla cuando hay más de 1 match
 Expresión regular: falla cuando hay más de 1 match 

 
 

