2013-11-07 5 views
0

Вот мой PHP код:Странная PHP ошибка синтаксического анализа

<?php 
/* some code */ 
    function blah() { 
     /* some code */ 
     if (!$book || !$txt) { 
?> 
<h1>Page Error</h1> 
<p>This is not a valid page</p> 
<?php 
      return; 
     } 
?> 
<h1>Check Page</h1> 
<p>Data:<?php print '<a href="'.wl($page).'">'.$page.'</a>'; ?></p> 
<?php 
     /* some code */ 
    } 
/* some code */ 

На сервере А она всегда возвращает Parse error: syntax error, unexpected '?>', expecting function (T_FUNCTION) in /blah/blah.php on line 474 (474 ​​является линия> непосредственно перед <h1>Check Page</h1>?) В то время как он работает найти на другом сервере B.

версия в PHP Version 5.5.5-1+debphp.org~precise+2 на моем сервере а и PHP Version 5.4.20 на сервере B.

кажется, что я пропустил некоторые конфигурации? Или есть какая-то ошибка или функция, которую я не заметил? У кого-то есть идея?

Edit:

Эта проблема временно решена после того, как я заменил:

?> 
<h1>Page Error</h1> 
<p>This is not a valid page</p> 
<?php 

с этим:

  print <<<'EOF' 
<h1>Page Error</h1> 
<p>This is not a valid page</p> 
EOF; 

Но я все же хотел бы знать, почему это происходит ,

+1

Это хорошо работает для меня на 5.5.5. Этот * точный * фрагмент дает вам сообщение об ошибке? –

+0

это должно выглядеть так, потому что это не самый читаемый код. –

+0

@Alex Почти, я просто заменил китайский текст в html-части английской версией. –

ответ

0

Дело в том, что вы не закрываем функцию ни if:

<?php 
/* some code */ 
function blah() { 
    /* some code */ 
    if (!$book || !$txt) { 
?> 

<h1>Page Error</h1> 
<p>This is not a valid page</p> 
<?php 
     return; 
    } 
?> 
<h1>Check Page</h1> 
<p>Data:<?php print '<a href="'.wl($page).'">'.$page.'</a>'; ?></p> 
<?php 
    /* some code */ 
} 
/* some code */ 

Вместо этого, вы должны сделать:

<?php 
/* some code */ 
function blah() { 
    /* some code */ 
    if (!$book || !$txt) { 

     return; 
    }  

echo "<h1>Page Error</h1>"; 
echo "<p>This is not a valid page</p>"; 

echo "<h1>Check Page</h1>"; 
echo '<p>Data: <a href="'.wl($page).'">'.$page.'</a></p>'; 

    /* some code */ 
} 
/* some code */ 
Смежные вопросы