php no soporta regex complejo

Iniciado por franfis, 28 Marzo 2014, 01:12 AM

0 Miembros y 1 Visitante están viendo este tema.

franfis

Hola amigos. Ciertamente no es un regex tan complejo pero cada vez que lo ejecuto en el  wampserver aparece el famoso mensaje Esta página web no está disponible, el archivo oui.txt lo obtengo de aqui http://standards.ieee.org/develop/regauth/oui/oui.txt . Este el codigo.

<?php
set_time_limit
(0);
$file file_get_contents("oui.txt");
preg_match_all("/([0-9A-F]{6})(?:.+\n)*(.*?)\n{2}/"$file ,$resPREG_PATTERN_ORDER);
var_dump($res);
?>


Este es el link http://www.regexr.com/38kq5 del regex. Como se indica en el regex tengo dos grupos de captura con los cuales pretendo obtener los 6 caracteres consecutivos y el pais, por ejemplo en

0000BD     (base 16) MITSUBISHI CABLE COMPANY
520 MADISON AVENUE
NEW YORK NY 10022
                                CHINA

Seria 0000BD y CHINA los grupos de captura.

Con el archivo reducido a solo lo que se muestra en el link del regex obtendo esto:
array
  0 =>
    array
      empty
  1 =>
    array
      empty
  2 =>
    array
      empty


No muestra lo que quiero pero al menor soporta el wampserver pero cuando pruebo con el oui.txt original(2MB) aparece Esta página web no está disponible.

Como puedo hacer para que wampserver no se venga abajo con el original oui.txt

Graciass de antemano

~ Yoya ~

Yo lo probé y funciona a la perfección.

Puede ser que PHP consuma mas memoria que la permitida y por eso se detenga la ejecución, pero puede ser otra cosa igual.

Revisa los error los del wampserver y veras la razón porque falla. También podrías subirlo a pastebin y postear la URL en este hilo.

PD: No vayas a copiar todos los errores que hayas tenidos, solo lo que tienen que ver con el archivo PHP que utiliza expresiones regulares para parsear el archivo oui.txt

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

franfis

#2
CitarYo lo probé y funciona a la perfección.

Puede ser que PHP consuma mas memoria que la permitida y por eso se detenga la ejecución, pero puede ser otra cosa igual.

Revisa los error los del wampserver y veras la razón porque falla. También podrías subirlo a pastebin y postear la URL en este hilo.

PD: No vayas a copiar todos los errores que hayas tenidos, solo lo que tienen que ver con el archivo PHP que utiliza expresiones regulares para parsear el archivo oui.txt
No me muestra nada, el log de errores php_error.log de wampserver esta en blanco, básicamente en el PHP.ini tengo esto:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
error_reporting = E_ALL
display_errors = On
display_startup_errors = On
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = On
html_errors = On
; Log errors to specified file. PHP's default behavior is to leave this value
; empty.
; http://php.net/error-log
; Example:
;error_log = php_errors.log
; Log errors to syslog (Event Log on NT, not valid in Windows 95).
;error_log = syslog
;error_log = "c:/wamp/logs/php_error.log"

Alguna sugerencia, gracias.




~ Yoya ~ Que version de wampserver usaste?  :huh:

~ Yoya ~

Nose, lo probe en Window pero de momento estoy en Linux...

Mira, Wampserver poco tiene que ver con lo que esta pasando, y cualquier problema que tenga que ver con PHP, Mysql o Apache. No te genera logs, porque simplemente tienes desactivado la opción para que lo genere, segun el php.ini que mostrastes.

Error logging with WAMP server in PHP

Asegúrate de que Wampserver este generando los logs de errores antes de probar con el código que tienes problema. Puedes provocar un error para darte cuenta.

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

franfis

Es extraño php_error.log sí logea los errores pero los errores de código, lo acabo de comprobar. No del tipo de error que me resulta.

~ Yoya ~

#5
Revisa el error log del apache, se encuentra en wamp/logs/apache_error.log
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

franfis

En el error_apache.log aparece esto:
[Sun Mar 30 08:09:17 2014] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Sun Mar 30 08:09:17 2014] [notice] Apache/2.2.17 (Win32) PHP/5.3.5 configured -- resuming normal operations
[Sun Mar 30 08:09:17 2014] [notice] Server built: Oct 18 2010 01:58:12
[Sun Mar 30 08:09:17 2014] [notice] Parent: Created child process 2240
[Sun Mar 30 08:09:18 2014] [notice] Child 2240: Child process is running
[Sun Mar 30 08:09:18 2014] [notice] Child 2240: Acquired the start mutex.
[Sun Mar 30 08:09:18 2014] [notice] Child 2240: Starting 64 worker threads.
[Sun Mar 30 08:09:18 2014] [notice] Child 2240: Starting thread to listen on port 80.

Este texto de arriba va multiplicándose a medida que ejecuto el código, cuando ejecuté otro codigo que si funciona bien, sin errores aparecio esto:

[Sun Mar 30 08:11:26 2014] [error] [client 127.0.0.1] client denied by server configuration: C:/Dev, referer: http://localhost/pruebas/php/
[Sun Mar 30 08:11:26 2014] [error] [client 127.0.0.1] client denied by server configuration: C:/Dev, referer: http://localhost/pruebas/php/
[Sun Mar 30 08:11:26 2014] [error] [client 127.0.0.1] client denied by server configuration: C:/Dev, referer: http://localhost/pruebas/php/
[Sun Mar 30 08:11:26 2014] [error] [client 127.0.0.1] client denied by server configuration: C:/Dev, referer: http://localhost/pruebas/php/


Bueno cual será el error, voy a instalar otro wampserver para probar.