-3

このコーディングを修正してください。これは、「解析エラー: 構文エラー、49 行目の /home/timmycpc/public_html/ItemDatabase/index.php の予期しない T_STRING」です。

<?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>
4

2 に答える 2

1

行がPHP String$str ...に出入りしています。これが解析エラーの原因です。引用符をエスケープするか、文字列を連結するか、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: (最も遅い) 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;
于 2012-10-25T00:54:39.123 に答える
-1

これを試して

$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>";

于 2012-10-25T00:48:27.890 に答える