替换smilies :)到图像PHP

时间:2011-10-25 14:23:14

标签: php

所以也许有人可以帮助我走上正轨。

我有一张留言簿,现在我试图改变表情符号:)给表情符号。

我可以在数据库中显示我拥有的表情符号,但是当我在留言簿中输入微笑时,它不会更改为图标。我认为这与我的while循环有关,但我无法得到它,因为我是一个新手。

我的textarea代码

<form action='process.php' method='post'>

<p>Name: <input type='text' name='name' id='name' /> </p>
<p>Email: <input type='text' name='email' id='email' /> </p>
<p>Comment: </p>
    <p><textarea name='comment' rows="7" cols="40"></textarea></p>
    <hr />
    <p><input type='submit' name='submit' value='Post Entry' /></p>
        </form>

这是我的PHP代码。

    <?php
    $path = "images"; 

    $db = mysql_connect('localhost', 'root', '') or die("Error: Couldn't connect to database"); 
    $db = mysql_select_db("guestbook");

    $query = "SELECT emote, image FROM emoticons"; 
    $result = mysql_query($query); 


    /*EMO ovanför*/

   $connect = mysql_connect('localhost','root','') or die ('FEL INDEX');
$db = mysql_select_db('guestbook');

    $query = mysql_query('select * from guestbook order by id desc');
    $num_rows = mysql_num_rows($query);

    if($num_rows > 0){

    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    $emotes[] = $row['emote']; 
    $images[] = "<img src='" . $path . "/" . $row['image'] . "'>"; 
    } 
    // Query the database, and assign the result-set to $result 

        //display entries
        while($row = mysql_fetch_assoc($query)){
            echo "
            <p>
            <b>Name: </b>".$row['name']."

            </p>

            <p>
            <b>Email: </b>".$row['email']."

            </p>

            <p>
            <b>Comment: </b>".$row['comment']."
            </p>

            <p>
            <b>Date: </b>".$row['date']." | Time: ".$row['time']."
            </p>
            <hr />
            ";

        }
    $text = ":) ;) :( :p "; 
    echo str_replace($emotes, $images, $text); 

        }



    ?>

正如你最后一行中的一行是从数据库中获取图像。这就像一个魅力,但不是当我在留言簿上写表情符号时。

2 个答案:

答案 0 :(得分:1)

你必须将应该是表情符号的字符串替换为这样的图像:

$row['comment'] =str_replace(':)','<img src="smile.jpg">', $row['comment']);

直接在你的时间。

图像的路径必须是正确的。

你可以复制一下所有的表情符号,但是如果你创建一个你的表情符号所在的数组然后在一个新的循环中替换它会更好

答案 1 :(得分:0)

您将无法直接在emoticons images中显示textarea,例如您需要像SO剂量一样复制输入并在html元素中显示格式化的输出。