2011-02-08 13 views
6
<? switch($data['type']) : ?> 
<? case 'log': ?> 

    <? while ($row = $data['loop']->fetch()) : ?> 
     <table class="t-errors"> 
      <tr> 
       <td> 
        <b>IP:</b> <? echo $row['LogShellIP']; ?> 
        <b>Command:</b> <? echo $row['LogShellCommand']; ?> 
        <b>Executed:</b> <? echo $row['LogShellReturn']; ?> 
        <b>Time:</b> <? echo format::time($row['LogShellTime']); ?> 
       </td> 
      </tr> 
     </table> 
    <? endwhile; ?> 

<? break; ?> 

<? case 'fatal': ?> 
<? case 'warning': ?> 
<? case 'notice': ?> 
<? case 'unknown': ?> 

    <? while ($row = $data['loop']->fetch()) : ?> 
     <table class="t-errors"> 
      <tr> 
       <td <? if ($row['LogErrorSeen'] == 0) { echo 'class="e-selected"'; } ?>> 
        <b>String:</b> <? echo $row['LogErrorString']; ?> 
        <b>File:</b> <? echo $row['LogErrorFile']; ?> 
        <b>Line:</b> <? echo $row['LogErrorLine']; ?> 
        <b>Context:</b> <? echo $row['LogErrorContext']; ?> 
        <b>Ip:</b> <? echo $row['LogErrorIP']; ?> 
        <b>Time:</b> <? echo format::time($row['LogErrorTime']); ?> 
       </td> 
      </tr> 
     </table> 
    <? endwhile; ?> 

<? break; ?> 
<? endswitch; ?>      

estoy recibiendo este error:T_INLINE_HTML? ¿Qué pasa con esto?

Parse error: syntax error, unexpected T_INLINE_HTML, expecting T_ENDSWITCH or T_CASE or T_DEFAULT in /Applications/XAMPP/xamppfiles/htdocs/Smooth Framework/tpl/terminal.tpl.php on line 33

Cuando la línea es la línea 332 de este guión. Esto se inserta en un contexto de plantilla. ¿Qué pasa con esto? ¡Está esperando un T_CASE y eso es lo que hay allí!

+0

el error podría estar al acecho en cualquier de las 31 líneas que ha omitido – Mchl

+0

Primero, no use short-tags. Y no sigas entrando y saliendo del contexto PHP así, es ** realmente ** feo. Si arregla eso, probablemente encontrará que el error desaparece de inmediato. – ircmaxell

+0

@Mchl, en absoluto. Las líneas de error PHP se refieren siempre a la línea anterior o actual. De modo que el error en la línea 33 podría estar en la línea 33 o 32, no anterior. Dado que se muestra el 32, ¿por qué PHP no se detuvo en 32 en su lugar? – Shoe

Respuesta

10

línea de combinación de 1 y 2

<? switch($data['type']): 
    case 'log': ?> 

ver el comentario en este link (jeremia al punto GMX a 28-Jan-2008 02:52)

+1

Exactamente: [LXR: language_parser.y] (http://lxr.php.net/xref/PHP_TRUNK/Zend/zend_language_parser.y#405). No 'T_INLINE_HTML' permitido allí. – NikiC

3

El analizador espera un token T_CASE pero encuentra la nueva línea después de switch($data['type']) : ?>.

switch (1) : ?> <? case 1: break; endswitch; 

da un error de análisis y lo mismo ocurre

switch (1) : ?>\n<? case 1: break; endswitch; 

mientras

switch (1) : ?><? case 1: break; endswitch; 

no. ;-)