Ошибка разбора в php-коде
Я получаю
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)
ошибка в следующей строке php code..pls может кто-нибудь объяснить проблему.
echo "<tr><td><a href=\"$row['link']\"><img src=\"$row['image']\" title=\"$row['game']\" width=\"68\" height \"57\" /></a></td><td><a href=\"$row['link']\">$row['game']</a> </td><td> $row['total']</td></tr>";
7 ответов
Пожалуйста, из-за разборчивости, используйте одинарные кавычки при использовании большого количества двойных кавычек в строке и объединяйте свои переменные. В противном случае вы получите множество \
в вашей строке, и будет сложнее обнаружить переменные:
echo ' <tr>
<td>
<a href="'.$row['link'].'">
<img src="'.$row['image'].'" title="'.$row['game'].'" width="68" height="57" />
</a>
</td>
<td>
<a href="'.$row['link'].'">'.$row['game'].'</a>
</td>
<td>'.$row['total'].'</td>
</tr>';
Проблема в том, что переменные массива встроены в строку.
Когда вы встраиваете переменную-массив в строку, вы должны заключить ее в фигурные скобки, например:
$stringvar = "blah blah {$arrayvar['element']} blah blah";
Поэтому в вашем коде $row['link']
и все остальные $row
элементы должны быть заключены в {}
брекеты.
Обратите внимание, что вы можете (и должны) сделать это для всех переменных в строке, но это обязательно для элементов массива.
Кроме того, у вас отсутствует пропущенная косая черта в одной из кавычек в вашей строке: \"57"
, Это также приведет к синтаксической ошибке.
Надеюсь, это поможет.
Чтобы помочь с отладкой: это довольно длинная и сложная строка кода, с множеством экранированных кавычек и т. Д., Которые могут затруднить отладку за один раз (особенно, когда у нее много проблем).
Мой совет - отлаживать его, разбивая его на более управляемые куски. Вы по-прежнему будете получать те же ошибки по тем же причинам, но их будет легче найти. Вы можете снова соединить линию в одну длинную линию, как только она будет исправлена.
Наконец, я бы рекомендовал использовать приличную IDE или текстовый редактор, который поддерживает подсветку синтаксиса. Это даст вам гораздо лучшую обратную связь о том, где ошибки.
Попробуй это
echo "<tr><td><a href=\"$row['link']\"><img src=\"$row['image']\" title=\"$row['game']\" width=\"68\" height \"57\" /></a></td><td><a href=\"$row['link']\">$row['game']</a> </td><td> $row['total']</td></tr>";
пропавший без вести
echo "<tr>
<td>
<a href=\"{$row['link']}\">
<img src=\"{$row['image']}\" title=\"{$row['game']}\" width=\"68\" height \"57\" />
</a>
</td><td>
<a href=\"{$row['link']}\">{$row['game']}</a> </td><td> {$row['total']}
</td>
</tr>";
Всегда полезно использовать { } для хранения переменных в строке, особенно здесь, потому что это значение массива.
Более того, здесь произошла ошибка:height =\"57"
=> height =\"57\"
В качестве альтернативы вы можете написать, как показано ниже, чтобы получить больше права:
echo '<a href="'.$row['link'].'">...';
Попробуй это:
echo '<tr><td><a href="'.$row['link'].'"><img src="'.$row['image'].'" title="'.$row['game'].'" width=\"68\" height \"57" /></a></td><td><a href="'.$row['link'].'">'.$row['game'].'</a> </td><td> '.$row['total'].'</td></tr>';
Попробуй это
echo '<tr><td><a href="' . $row['link'] . '"><img src="' . $row['image'] . '" title="' . $row['game'] . '" width="68" height="57" /></a></td><td><a href="' . $row['link'] . '">' . $row['game'] . '</a></td><td>' . $row['total'] . '</td></tr>';