Ошибка анализа: ошибка синтаксиса, неожиданный T_STRING 59

Пожалуйста, исправьте этот фрагмент кода. Вот что он говорит: «Ошибка анализа: синтаксическая ошибка, неожиданный T_STRING в /home/timmycpc/public_html/ItemDatabase/index.php в строке 49» Это строка 12 – 49:

<?php $arr = json_decode(file_get_contents("url.com/file.json"),true); $page = isset($_GET['p']) ? intval($_GET['p']) : 0; $elementsPerPage = 20; $elements = array_slice($arr, $page * $elementsPerPage, $elementsPerPage); $totalpages = intval(count($arr)/$elementsPerPage); if($_GET['p'] == ""){$_GET['p'] = '0';} $whatpage = $_GET['p']; if($whatpage > $totalpages){echo("<tr><td>Sorry this page does not exist. Please return to <a href='?p=0'>page 1</a>.</td></tr>"); exit;} $link1 = $whatpage-1; $link2 = $whatpage+1; if($_GET['p'] == 0){$backbutton = "";} else {$backbutton = "<a href=?p=" . $link1 . ">Previous Page</a>";} if($_GET['p'] == $totalpages){$nextbutton = "";} else {$nextbutton = "<a href=?p=" . $link2 . ">Next Page</a>";} if($_GET['p'] == $totalpages or $_GET['p'] == 0){$middle = "";} else {$middle = " | ";} $pagenav = $backbutton . $middle . $nextbutton; echo('<tr><td colspan="5" align="center">'.$pagenav.'</td></tr>'); foreach($elements as $item) { $label = $item['label']; $cost = $item['cost']; $id = $item['paper_item_id']; $member = $item['is_member']; $patched = $item['is_bait']; if ($member == "1") { $member = "Yes"; }else{ $member = "No"; } if ($patched == "1") { $patched = "Yes"; }else{ $patched = "No"; } $str .= "<tr><td><embed src="http://www.url.com/SWFViewer/items.swf?id=<?php echo($id); ?>"></td><td style='text-align: left !important;'><b>Name:</b> $label</td><td><b>Item ID:</b> $id</td><td><b>Members:</b> $member</td><td><b>Cost:</b> $cost coins</td><td><b>Patched:</b> $patched</td></tr>"; } echo substr($str, 0, -5); ?></table></center></body></html> 

Related of "Ошибка анализа: ошибка синтаксиса, неожиданный T_STRING 59"

Ваша строка $str ... взламывает и удаляет строку PHP . Это вызывает ошибку синтаксического анализа. Вы должны либо убежать \" quot цитаты, объединить ваши строки, либо использовать HEREDoc.

Дополнительную информацию см. В руководстве PHP по строкам .

Вариант 1: (Лучшее) Вы можете избежать двойных кавычек в своей строке: (И удалить <?php echo )

 $str .= "<tr><td><embed src=\"http://www.url.com/SWFViewer/items.swf?id=$id\"></td><td style='text-align: left !important;'><b>Name:</b> $label</td><td><b>Item ID:</b> $id</td><td><b>Members:</b> $member</td><td><b>Cost:</b> $cost coins</td><td><b>Patched:</b> $patched</td></tr>"; 

Вариант 2: объедините свою строку и используйте одинарные кавычки:

 $str .= '<tr><td><embed src="http://www.url.com/SWFViewer/items.swf?id=' . $id . '"></td><td style="text-align: left !important;"><b>Name:</b> ' . $label . '</td><td><b>Item ID:</b> ' . $id . '</td><td><b>Members:</b> ' . $member . '</td><td><b>Cost:</b> ' . $cost . ' coins</td><td><b>Patched:</b> ' . $patched . '</td></tr>'; 

Вариант 3: (Slowest) Используйте HereDoc:

 $str .= <<<EOF <tr><td><embed src="http://www.url.com/SWFViewer/items.swf?id=$id"></td><td style="text-align: left !important;"><b>Name:</b> $label</td><td><b>Item ID:</b> $id</td><td><b>Members:</b> $member</td><td><b>Cost:</b> $cost coins</td><td><b>Patched:</b> $patched</td></tr> EOF; 

попробуй это

$str .= "<tr><td><embed src=\"http://www.timmycp.co.cc/SWFViewer/items.swf?id=".$id."\"></td><td style='text-align: left !important;'><b>Name:</b> $label</td><td><b>Item ID:</b> $id</td><td><b>Members:</b> $member</td><td><b>Cost:</b> $cost coins</td><td><b>Patched:</b> $patched</td></tr>";