Замена персонажей смайликами из отраженного ряда

Я не могу понять это и не моя сильная сторона кодирования эфира.

На данный момент он будет печатать только первое лицо и метку времени, а не что-нибудь еще.

<table cellpadding="0" cellspacing="0" width="100%">
<tr><td></td></tr>

<?php
include '../connection.php';$sql = "SELECT *
FROM messagebox
INNER JOIN person
ON messagebox.sid = person.sid
ORDER BY messagebox.id DESC
LIMIT 20
";
$query = mysql_query($sql);
while($row = mysql_fetch_array($query))
{
if ($switch=='1')
{
echo "<tr bgcolor=\"#FFFFFF\">";
$switch='0';
}
else
{
echo "<tr bgcolor=\"#F9F9F9\">";
$switch='1';
}

$elfstring = utf8_encode($row['shout']);

function smiley($elfstring) {
$elfstring = ereg_replace(":)","<img src=!.png alt=\"!\" >", $elfstring);
$elfstring = ereg_replace(":(","<img src=laugh.gif alt=\":D\" >", $elfstring);
$elfstring = ereg_replace(":p","<img src=tongue.gif alt=\":p\" >", $elfstring);
return $elfstrings;

}
$messages = smiley($elfstring);

echo "";

echo "<td width=\"100\" valign=\"top\"><strong>" . $row['name'] . "</strong></td>";

echo "<td width=\"100\" valign=\"top\">" . "(" . $row['place'] .")</td>";
echo "<td width=\"70\" valign=\"top\">" . "" . date('H:i:s',strtotime ($row['timestamp'])) ."</td>";
echo "<td valign=\"top\">" . smiley($elfstrings) . "</td>";
echo "</tr>";

}
?>

<tr>
<td>

</td>
</tr>
</table>

0

Решение

  1. Вы не можете объявить функцию несколько раз. Переместить function smiley(){ за пределами вашего while петля.
  2. Вы должны включить отчеты об ошибках и отслеживать ваши журналы ошибок.
  3. Вы должны сделать отступ для каждого блока управления, чтобы вы могли легко определить, где заканчиваются / начинаются блоки.
  4. Если вам не нужно регулярное выражение / не используете его, не используйте функцию регулярного выражения. ( а также ) являются специальными символами регулярного выражения и будут вызывать ошибки. использование str_replace потому что вы делаете статические замены в любом случае.
  5. Вы можете заключить строки в " или же ', это может упростить построение строки, потому что вам не нужно убегать.

Итак, сделайте окончание вашего сценария:

function smiley($elfstring) {
return str_replace(array(':)', ':(', ':p'),
array('<img src="!.png" alt="!" >', '<img src="laugh.gif" alt=":D" >', '<img src="tongue.gif" alt=":p" >'),
$elfstring);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]