Foros del Web » Programando para Internet » PHP »

Expresion regular para buscar cadenas PHP

Estas en el tema de Expresion regular para buscar cadenas PHP en el foro de PHP en Foros del Web. Hola, estoy haciendo un código como proyecto para una materia y lo que se debe hacer es buscar declaraciones y llamadas de funciones dentro de ...
  #1 (permalink)  
Antiguo 15/09/2008, 13:49
 
Fecha de Ingreso: febrero-2001
Mensajes: 149
Antigüedad: 23 años, 2 meses
Puntos: 0
Expresion regular para buscar cadenas PHP

Hola, estoy haciendo un código como proyecto para una materia y lo que se debe hacer es buscar declaraciones y llamadas de funciones dentro de todo los archivos del moodle.

Y tengo el siguiente problema:

Tengo los datos del archivo linea por linea dentro de un array y lo que debo de hacer es evitar la busqueda de algunas cosas en los strings y mediante una expresión regular quiero saber si la linea contiene cadenas.

Se me ocurrio con expresiones regulares pero no las se usar muy bien:

la linea pudiera tener escapes:

$ string = "hola esta('param') es una /"Prueba/" de cadena";

lo que quiero evitar es que me detecte esta('param') como una función

Gracias, espero se haya entendido y quedo en espera de sus comentarios
__________________
Mensajes Anonimos
www.mensajesanonimos.com
  #2 (permalink)  
Antiguo 15/09/2008, 13:55
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Expresion regular para buscar cadenas PHP

amigo de verdad deseo apoyarte pero no entendi bien lo que deseas.....
si me dieras un ejemplo mas especifico o escribir bien lo que deseas, te lograria entender mejor.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 15/09/2008, 14:06
 
Fecha de Ingreso: febrero-2001
Mensajes: 149
Antigüedad: 23 años, 2 meses
Puntos: 0
Respuesta: Expresion regular para buscar cadenas PHP

ok, lo que hago es buscar en un archivo php, las declaraciones o llamadas a funcion.

y lo que quiero evitar es que mi programa me detecte como funcion cosas que se imprimen en pantalla:

si voy leyendo linea por linea y me encuentro con la siguiente

$ string = "hola esta('param') es una /"Prueba/" de cadena";

No quiero que mi programa me diga que.. esta('param') es una llamada a funcion por que cumple con las caracteristicas, pero esta solo es una impresión en pantalla y por la tanto tengo que omitir este tipo de detalles.

Gracias por el interes, espero tengas una idea mas clara de lo que necesito.
__________________
Mensajes Anonimos
www.mensajesanonimos.com
  #4 (permalink)  
Antiguo 15/09/2008, 14:24
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Expresion regular para buscar cadenas PHP

ya man ok, lo que no entiendo cual es la finalidad de dicho programa, es un software creado por otro o es una codigo que tu estas haciendo y sale algo mal.....
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #5 (permalink)  
Antiguo 15/09/2008, 14:38
 
Fecha de Ingreso: febrero-2001
Mensajes: 149
Antigüedad: 23 años, 2 meses
Puntos: 0
Respuesta: Expresion regular para buscar cadenas PHP

La idea es documentar el Moodle, guardando en una base de datos las declaraciones de funciones con sus parametros, archivo donde se declara y el numero de linea donde se encuentra asi como el tipo de retorno si lo tiene.

Lo único es ese problema que me hacen mosca los strings que pueden simular una llamada a funcion cuando no lo es.

Por eso es que requiero hacer algo que me detecte ese posible caso.

Saludos,
__________________
Mensajes Anonimos
www.mensajesanonimos.com
  #6 (permalink)  
Antiguo 15/09/2008, 14:40
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Expresion regular para buscar cadenas PHP

vale ahora si entiendo, jeje perame unos minutos pa masticarlo
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #7 (permalink)  
Antiguo 15/09/2008, 14:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Expresion regular para buscar cadenas PHP

Puedes usar el ReflectionApi de PHP, te puede dar los comentarios, donde fue definida la función los parametros y más información.

Saludos.
  #8 (permalink)  
Antiguo 15/09/2008, 14:48
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Expresion regular para buscar cadenas PHP

tio la verdad ami si me sale, ya que yo te entiendo que tu kieres saber cuales son las funciones de todo tu script para almacenarlas, pero tambien te agarra las que estan en string y no deberia de serlo verdad???
sin embargo, yo he creado lo sigueinte:

Código PHP:
<?php
function aa($string){
echo 
$string;
}
aa("abc");
echo 
"<br>no imprimas aa('abc')";
?>
y solo me llama a la funcion en la primera sentencia, en el string no lo hace......
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #9 (permalink)  
Antiguo 15/09/2008, 14:53
 
Fecha de Ingreso: febrero-2001
Mensajes: 149
Antigüedad: 23 años, 2 meses
Puntos: 0
Respuesta: Expresion regular para buscar cadenas PHP

Cita:
Iniciado por GatorV Ver Mensaje
Puedes usar el ReflectionApi de PHP, te puede dar los comentarios, donde fue definida la función los parametros y más información.

Saludos.
Muchas Gracias GatorV me voy a empapar mas sobre eso ya que puede ser de gran utilidad.
__________________
Mensajes Anonimos
www.mensajesanonimos.com
  #10 (permalink)  
Antiguo 15/09/2008, 14:55
 
Fecha de Ingreso: febrero-2001
Mensajes: 149
Antigüedad: 23 años, 2 meses
Puntos: 0
Respuesta: Expresion regular para buscar cadenas PHP

Cita:
Iniciado por masterojitos Ver Mensaje
tio la verdad ami si me sale, ya que yo te entiendo que tu kieres saber cuales son las funciones de todo tu script para almacenarlas, pero tambien te agarra las que estan en string y no deberia de serlo verdad???
sin embargo, yo he creado lo sigueinte:

Código PHP:
<?php
function aa($string){
echo 
$string;
}
aa("abc");
echo 
"<br>no imprimas aa('abc')";
?>
y solo me llama a la funcion en la primera sentencia, en el string no lo hace......

Si pero estas ejecutando el código, lo que haria mi programa es leer linea por linea ese programita que hiciste y deirme que se declaro una funcion en la linea 2, se llamo una funcion en la linea 5 y otra en la linea 6 ya que aa('abc') parese llamar a la función.

Espero haberme dado a entender..

Saludos
__________________
Mensajes Anonimos
www.mensajesanonimos.com
  #11 (permalink)  
Antiguo 15/09/2008, 15:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Expresion regular para buscar cadenas PHP

Si usas Reflection puedes hacerlo facilmente:
Código php:
Ver original
  1. // Crear una instancia de la clase ReflectionFunction
  2. $func = new ReflectionFunction('nombre_de_tu_funcion');
  3.  
  4. // Imprimir información
  5.     "===> La funcion %s '%s'\n".
  6.     "     declarada en %s\n".
  7.     "     lineas %d a la %d\n",
  8.     $func->isInternal() ? 'internal' : 'user-defined',
  9.     $func->getName(),
  10.     $func->getFileName(),
  11.     $func->getStartLine(),
  12.     $func->getEndline()
  13. );
  14.  
  15. // Imprimir documentación
  16. printf("---> Documentation:\n %s\n", var_export($func->getDocComment(), 1));
  17.  
  18. // Imprimir variables estaticas si hay definidas
  19. if ($statics = $func->getStaticVariables())
  20. {
  21.     printf("---> Static variables: %s\n", var_export($statics, 1));
  22. }
  23.  
  24. // Ejecutar la funcion
  25. printf("---> Invokation results in: ");
  26. var_dump($func->invoke());

Saludos.
  #12 (permalink)  
Antiguo 15/09/2008, 15:20
 
Fecha de Ingreso: febrero-2001
Mensajes: 149
Antigüedad: 23 años, 2 meses
Puntos: 0
Respuesta: Expresion regular para buscar cadenas PHP

Pero ese solo aplica con clases ? y si el código es estructurado tambien podria manejar esta opción que me comentas ?
__________________
Mensajes Anonimos
www.mensajesanonimos.com
  #13 (permalink)  
Antiguo 15/09/2008, 16:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Expresion regular para buscar cadenas PHP

El ReflectionAPI sirve tanto para funciones como para clases, interfaces, etc. Es un API muy util para examinar el código PHP.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:03.