Buenas,
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);
}
Y el archivo $file contiene el siguiente código:
Código PHP:
<table>
<tr>
<td><?php prueba('hola'); ?></td>
<td><?php prueba("que tal"); ?></td>
<td><?php prueba("adios"); ?></td>
</tr>
</table>
Hasta aquí el resultado es correcto:
Cita: Array ( [0] => hola [1] => que tal [2] => adios )
El problema viene cuando encuentra más de una función en la misma linea, algo como esto:
Código PHP:
<table>
<tr>
<td><?php prueba('hola'); ?></td><td><?php prueba("que tal"); ?></td>
<td><?php prueba("adios"); ?></td>
</tr>
</table>
El array que me devuelve entonces es:
Cita: Array ( [0] => hola'); ?> adios )
Como tengo que modificar el patrón para que me salga bien con más match en una misma linea?
Muchas gracias de antemano.