Bug #53115 [NEW]: Crash defining array() $patterns[95]

From: Date: Wed, 20 Oct 2010 12:36:18 +0000
Subject: Bug #53115 [NEW]: Crash defining array() $patterns[95]
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-155364@lists.php.net to get a copy of this message
From:             
Operating system: Unix/Linux
PHP version:      5.3.3
Package:          Unknown/Other Function
Bug Type:         Bug
Bug description:Crash defining array() $patterns[95] 

Description:
------------
I have a problem with init array var:

$patterns = array();
$patterns[0] = 'any';
....
$patterns[94] = 'any other';

when i have defined from 0 to 94 $patterns and $replacements components all
work ok. But when add the 95 $patterns the php program crash (blank page is
returned by the server)
You know this problem?

I have running the php like CGI scripts with Apache, I don't know exactly
wath is the php version 

Test script:
---------------
<?php
function traduce($string)
  {
  $resultado_string = '';
   
  $patterns = array();

  $patterns[ 0] = '/Date:/';
  $patterns[ 1] = '/Time:/';
  $patterns[ 2] = '/Ticker:/';
  $patterns[ 3] = '/Last:/';
  $patterns[ 4] = '/Pivot:/';
  $patterns[ 5] = '/Title:/';
  $patterns[ 6] = '/Summary:/';
  $patterns[ 7] = '/Update on supports and resistances./';    
  $patterns[ 8] = '/Story:/';
  $patterns[ 9] = '/intraday/';
  $patterns[10] = '/continuation of the rebound/';
  $patterns[11] = '/Our preference:/';
  $patterns[12] = '/Alternative scenario:/';
  $patterns[13] = '/Long positions/';
  $patterns[14] = '/above/';
  $patterns[15] = '/Below/';
  $patterns[16] = '/below/';
  $patterns[17] = '/Above/';
  $patterns[18] = '/with/';
  $patterns[19] = '/targets/';
  $patterns[20] = '/ as /';
  $patterns[21] = '/in extension/';      
  $patterns[22] = '/look for further downside/';
  $patterns[23] = '/@/';
  $patterns[24] = '/ &amp; /';
  $patterns[25] = '/Key levels  Comment/';
  $patterns[26] = '/Comment: /';  
  $patterns[27] = '/the pair has rebounded/';
  $patterns[28] = '/on its support/';
  $patterns[29] = '/ and /';
  $patterns[30] = '/is challenging/';
  $patterns[31] = '/ its /';
  $patterns[32] = '/new resistance/';
  $patterns[33] = '/ last/';
  $patterns[34] = '/under pressure/';
  $patterns[35] = '/Short positions/';
  $patterns[36] = '/the RSI/';
  $patterns[37] = '/is /';
  $patterns[38] = '/badly directed/';
  $patterns[39] = '/look for further upside/';
  $patterns[40] = '/the upside prevails/';
  $patterns[41] = '/the downside prevails/';
  $patterns[42] = '/remains /';
  $patterns[43] = '/the pair has broken/';
  $patterns[44] = '/new support/';
  $patterns[45] = '/resistance/';
  $patterns[46] = '/soporteed by/';
  $patterns[47] = '/a bullish trend line/';
  $patterns[48] = '/a bearish trend line/';
  $patterns[49] = '/the bias /';
  $patterns[50] = '/mixed /';
  $patterns[51] = '/ bullish.</';
  $patterns[52] = '/ bearish.</';
  $patterns[53] = '/a bullish bias./';
  $patterns[54] = '/a bearish bias./';
  $patterns[55] = '/should face a further weakness/';
  $patterns[56] = '/on the upside./';
  $patterns[57] = '/on the downside./';
  $patterns[58] = '/Our Preference:/';
  $patterns[59] = '/SHORT positions/';
  $patterns[60] = '/The upside penetration of/';
  $patterns[61] = '/will call for a rebound towards/';
  $patterns[62] = '/Key levels/';
  $patterns[63] = '/pivot point/';
  $patterns[64] = '/ Intraday /';
  $patterns[65] = '/ Last</';
  $patterns[66] = '/ the pair /';
  $patterns[67] = '/ posting a rebound /';
  $patterns[68] = '/ but /';
  $patterns[69] = '/ conin a/';  
  $patterns[70] = '/ bearish channel/';  
  $patterns[71] = '/rebound.</'; 
  $patterns[72] = '/Trend: /';
  $patterns[73] = '/ST Ltd Upside;/';
  $patterns[74] = '/MT Range/';
  $patterns[75] = '/rebounding/';
  $patterns[76] = '/stands/';
  $patterns[77] = '/ bullish channel/';
  $patterns[78] = '/former support/';
  $patterns[79] = '/support/';
  $patterns[80] = '/lacks/';
  $patterns[81] = '/upward momentum/';
  $patterns[82] = '/downward momentum/';
  $patterns[83] = '/The upside breakout of/';
  $patterns[84] = '/The downside breakout of/';
  $patterns[85] = '/will open the way to/';
  $patterns[86] = '/Fib projection/';
  $patterns[87] = '/next/';
  $patterns[88] = '/should rebound on/';
  $patterns[89] = '/approaching/';
  $patterns[90] = '/calls for caution/';
  $patterns[91] = '/should face a weakness/';
  $patterns[92] = '/ST Ltd Downside;/';
  $patterns[93] = '/has broken/';
  $patterns[94] = '/rising trend line/';
// With the next line crash
//  $patterns[95] = '/hello/; 

  $replacements = array();
  
  $replacements[ 0] = 'Fecha:';
  $replacements[ 1] = 'Hora:';
  $replacements[ 2] = 'Divisa:';
  $replacements[ 3] = 'Último:';
  $replacements[ 4] = 'Pivote:';
  $replacements[ 5] = 'Título:';
  $replacements[ 6] = '&nbsp;';
  $replacements[ 7] = '&nbsp;';
  $replacements[ 8] = 'Análisis:';
  $replacements[ 9] = 'Antradía';
  $replacements[10] = 'Continuación del rebote';
  $replacements[11] = 'Nuestra recomendación:';
  $replacements[12] = 'Escenario alternativo:';
  $replacements[13] = 'Abrir posiciones largas';
  $replacements[14] = 'por encima de';
  $replacements[15] = 'Por debajo de';
  $replacements[16] = 'por debajo de';
  $replacements[17] = 'Por encima de';
  $replacements[18] = 'con';
  $replacements[19] = 'objetivos';
  $replacements[20] = ' como ';
  $replacements[21] = 'como máximo';
  $replacements[22] = 'esperamos una caida';
  $replacements[23] = ' a ';
  $replacements[24] = ' y ';
  $replacements[25] = 'Niveles importantes:<b>';
  $replacements[26] = 'Comentario: ';
  $replacements[27] = 'El par ha rebotado';
  $replacements[28] = 'sobre su soporte';
  $replacements[29] = ' y ';
  $replacements[30] = 'está buscando';
  $replacements[31] = ' su ';
  $replacements[32] = 'nueva resistencia';
  $replacements[33] = ' último';  
  $replacements[34] = 'bajo presión';
  $replacements[35] = 'Abrir posiciones cortas';
  $replacements[36] = 'el RSI';
  $replacements[37] = 'está ';
  $replacements[38] = 'forzado';
  $replacements[39] = 'esperamos una repunte';
  $replacements[40] = 'Permanece alcista';
  $replacements[41] = 'Permanece bajista';
  $replacements[42] = 'permanece ';
  $replacements[43] = 'El par ha roto';
  $replacements[44] = 'nuevo soporte';
  $replacements[45] = 'resistencia';
  $replacements[46] = 'soportado por';
  $replacements[47] = 'una línea de tendencia alcista';
  $replacements[48] = 'una línea de tendencia bajista';
  $replacements[49] = 'el canal ';
  $replacements[50] = 'mixto ';
  $replacements[51] = ' alcista.<';
  $replacements[52] = ' bajista.<';
  $replacements[53] = 'un canal alcista.';
  $replacements[54] = 'un canal bajista.';
  $replacements[55] = 'debería debilitarse';
  $replacements[56] = 'alcista.';
  $replacements[57] = 'bajista.';
  $replacements[58] = 'Nuestra recomandación:';
  $replacements[59] = 'Posiciones cortas';
  $replacements[60] = 'Una penetración alcista de'; 
  $replacements[61] = 'nos llevaría a un rebote hasta';
  $replacements[62] = 'Niveles importantes:<b>';
  $replacements[63] = 'pivote';
  $replacements[64] = '';
  $replacements[65] = ' Último<';
  $replacements[66] = ' el par ';
  $replacements[67] = ' realizando un rebote ';
  $replacements[68] = ' pero ';
  $replacements[69] = ' en un';
  $replacements[70] = ' canal bajista';
  $replacements[71] = 'rebote.<';
  $replacements[72] = 'Tendencia: ';
  $replacements[73] = 'Alcista a';
  $replacements[74] = 'Medio plazo';
  $replacements[75] = 'rebotando';
  $replacements[76] = 'se mantiene';
  $replacements[77] = 'canal alcista';
  $replacements[78] = 'soporte formado';
  $replacements[79] = 'soporte';
  $replacements[80] = 'carece';
  $replacements[81] = 'impulso alcista';
  $replacements[82] = 'impulsobajista';
  $replacements[83] = 'Si la subida rompe';
  $replacements[84] = 'Si la bajada rompe';
  $replacements[85] = 'abrirá el camino a';
  $replacements[86] = 'Poyección Fibo';
  $replacements[87] = 'siguientes';
  $replacements[88] = 'debería rebotar en';
  $replacements[89] = 'acercandose a';
  $replacements[90] = 'debemos tener precaución';
  $replacements[91] = 'debería debilitarse';
  $replacements[92] = 'Bajista a';
  $replacements[93] = 'a roto';
  $replacements[94] = 'línea de tendencia alcista';
// With the next line NO crash
  $replacements[95] = 'hola';
  

  $resultado_string = preg_replace($patterns, $replacements, $string);
  return $resultado_string;
  }
?>

Expected result:
----------------
Translate a string from a especific work in inglish to spanish

Actual result:
--------------
with $patterns[95] defined crash

Actually mi solution is, after call the function, call to other function
with new 95 $patterns with the returned string by trhe first function.

-- 
Edit bug report at http://bugs.php.net/bug.php?id=53115&edit=1
-- 
Try a snapshot (PHP 5.2):            http://bugs.php.net/fix.php?id=53115&r=trysnapshot52
Try a snapshot (PHP 5.3):            http://bugs.php.net/fix.php?id=53115&r=trysnapshot53
Try a snapshot (trunk):              http://bugs.php.net/fix.php?id=53115&r=trysnapshottrunk
Fixed in SVN:                        http://bugs.php.net/fix.php?id=53115&r=fixed
Fixed in SVN and need be documented: http://bugs.php.net/fix.php?id=53115&r=needdocs
Fixed in release:                    http://bugs.php.net/fix.php?id=53115&r=alreadyfixed
Need backtrace:                      http://bugs.php.net/fix.php?id=53115&r=needtrace
Need Reproduce Script:               http://bugs.php.net/fix.php?id=53115&r=needscript
Try newer version:                   http://bugs.php.net/fix.php?id=53115&r=oldversion
Not developer issue:                 http://bugs.php.net/fix.php?id=53115&r=support
Expected behavior:                   http://bugs.php.net/fix.php?id=53115&r=notwrong
Not enough info:                     http://bugs.php.net/fix.php?id=53115&r=notenoughinfo
Submitted twice:                     http://bugs.php.net/fix.php?id=53115&r=submittedtwice
register_globals:                    http://bugs.php.net/fix.php?id=53115&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=53115&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=53115&r=dst
IIS Stability:                       http://bugs.php.net/fix.php?id=53115&r=isapi
Install GNU Sed:                     http://bugs.php.net/fix.php?id=53115&r=gnused
Floating point limitations:          http://bugs.php.net/fix.php?id=53115&r=float
No Zend Extensions:                  http://bugs.php.net/fix.php?id=53115&r=nozend
MySQL Configuration Error:           http://bugs.php.net/fix.php?id=53115&r=mysqlcfg



Thread (5 messages)

« previous php.bugs (#155364) next »