Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/05/2012, 02:31
Avatar de Karmac
Karmac
 
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: Error con bucle y array()

Pongo el código original a continuación, el que no da error. Al cambiar la expresion regular funciona bien, lo que pasa es que tuve que editarlo porque no selecciona bien los datos.
Código PHP:
Ver original
  1. $regex = '.*?(Attacker|Defender) ([^\n\r]*?)(\s*?\[([0-9]:[0-9]{1,3}:[0-9]{1,2})\])?'
  2.                . '(\s*?Weapons: ([0-9]{0,2})0% Shields: ([0-9]{0,2})0% Armour: ([0-9]{0,2})0%)?\s*'
  3.                . '(Type([A-Za-z.-\s]*)\s*' . 'Total([0-9.\s]*).*?Weapons' . '|destroyed.)\s*'
  4.                . '.*?(?=Attacker|Defender)';

Y esta la expresion regular de antes que se me olvido ponerla.

Código PHP:
Ver original
  1. $regex  = '#'
  2.                 . '(Atacante|Defensor) ([a-zA-Z0-1\s]*) (\[[0-9]:[0-9]{1,3}:[0-9]{1,2}\]) '
  3.                 . 'Armamento: ([0-9]{0,2}0%) Escudos: ([0-9]{0,2}0%) Cascos: ([0-9]{0,2}0%)\s'
  4.                 . 'Tipo\s*([a-zA-Záéíóú.\s]*)\s*Cantidad\s*([0-9.\s]*)'
  5.                 . '#';

El error tiene que ser ahí porque ahora me pone que se me ha agotado el limite en la línea del preg_match_all(). Soy nuevo con las expresiones regulares y posiblemente haya puesto algo más. De todos modos es extraño porque cuando pongo un die() en cualquier parte del script si que funciona.

Saludos.

EDIT: Me da error ahora, pero en una línea que está comentada. Además la memoria que intenta asignar es mucho menor que el límite.

Cita:
Fatal Error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 3883 bytes) in /path/ on line 140

Última edición por Karmac; 01/05/2012 a las 02:50