私はこれを理解することができず、エーテルをコード化する強い側ではありません。エコーされた行の文字をスマイリーに置き換える
現在のところ、最初の人物とタイムスタンプだけが印刷されます。これ以上のものはありません。
<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>
私はこのコードの一部が廃止されて知っているが、これを使用してサーバーが古く、最新ではありません。
ご協力いただきありがとうございます。
ereg_機能はとっくの昔廃止されました。正規表現を使用する必要がある場合は、代わりにpreg_関数を使用してください。しかし、ここで正規表現を使用する理由はありません。静的な検索文字列を置き換えるだけなので、str_replaceはそうするでしょう。 – CBroe
正確なクエリを使用した結果が複数あることは確かですか? –
メッセージボックスから20行を印刷するはずです。今は1を印刷しており、メッセージはエコーされません。 –