2011-02-08 10 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; ?>      

私はこのエラーを取得しています:ライン33このスクリプトの行2あるT_INLINE_HTML?これには何が問題なのですか?

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

。これはテンプレートコンテキストに挿入されます。これには何が問題なのですか?彼はT_CASEを期待しています、それはそこにあります!

+0

にエラーがいずれにも潜んでいる可能性があります参照しますあなたが非公開にした31行のうち – Mchl

+0

まず、ショートタグを使用しないでください。そして、PHPの文脈に邪魔をしないでください**本当に**醜いです。これを修正すれば、エラーがすぐに消えてしまうことがわかります。 – ircmaxell

+0

@Mchl、まったくありません。 PHPのエラー行は、常に前の行または現在の行を参照しています。そのため、33行目のErrorは33行目または32行目にある可能性があります。 32が表示されているので、なぜPHPは32で停止しませんでしたか? – Shoe

答えて

10

マージ線1及び2

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

コメントはこのlink(28-JAN-2008でGMXドットでjeremia 2:52)

+1

正確:[LXR:language_parser.y](http://lxr.php.net/xref/PHP_TRUNK/Zend/zend_language_parser.y#405)。 T_INLINE_HTMLは許可されていません。 – NikiC

3

パーサはT_CASEトークンを期待していますが、switch($data['type']) : ?>の後に改行を検出します。

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

はパースエラーを与え、

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

はそうではないので、

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

を行います。 ;-)

関連する問題