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$regex = '.*?(Attacker|Defender) ([^\n\r]*?)(\s*?\[([0-9]:[0-9]{1,3}:[0-9]{1,2})\])?'
. '(\s*?Weapons: ([0-9]{0,2})0% Shields: ([0-9]{0,2})0% Armour: ([0-9]{0,2})0%)?\s*'
. '(Type([A-Za-z.-\s]*)\s*' . 'Total([0-9.\s]*).*?Weapons' . '|destroyed.)\s*'
. '.*?(?=Attacker|Defender)';
Y esta la expresion regular de antes que se me olvido ponerla.
Código PHP:
Ver original$regex = '#'
. '(Atacante|Defensor) ([a-zA-Z0-1\s]*) (\[[0-9]:[0-9]{1,3}:[0-9]{1,2}\]) '
. 'Armamento: ([0-9]{0,2}0%) Escudos: ([0-9]{0,2}0%) Cascos: ([0-9]{0,2}0%)\s'
. 'Tipo\s*([a-zA-Záéíóú.\s]*)\s*Cantidad\s*([0-9.\s]*)'
. '#';
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