arafarn12 โพสต์ 2011-9-27 13:22:15

[PHP] ใช้ระบบแทนที่ข้อความในห้องแชท เพื่อทำเป็น Emoticon [ถามปัญหาครับ ด่วนมาก TT]

แก้ไขครั้งสุดท้ายโดย arafarn12 เมื่อ 2011-9-27 13:25

แก้ไขครั้งสุดท้ายโดย arafarn12 เมื่อ 2011-9-27 13:22

คือ ผมทำแชท PHP กับระบบ AjaxPHPChat ของ Thaicreate ครับ

--- อ้างอิง : http://www.thaicreate.com/tutorial/ajax-chat-room.html

ตอนนี้ผมใช้ฟังค์ชั่นการแทนที่ข้อความเปลี่ยนเป็นรูปภาพ เพื่อทำเป็น Emoticon ซึ่งผมก็ได้ดังนี้ครับ{       
                //*** Write Text file ***//
                $objFopen = fopen("data/".$strFileName, 'a');
               
                $strText1 = $em->apply("$strName say : $strMessage\r\n");
               
                $em = new Emoticon();
                $em->add(':)','../../pic/angry.gif');
                $em->add(':P','../../pic/aysmile.gif');
                $em->add('<:)','../../pic/beer.gif');

               
               
                fwrite($objFopen, $strText1);
                fclose($objFopen);
        }
จะเห็นได้ชัดว่า$strText1 = $em->apply("$strName say : $strMessage\r\n");เป็นโค้ดไม่ถูกต้อง แต่ผมจะทำไงให้มันได้อ่ะครับ ให้ $em Apply ข้อความที่ถูกส่งมา โดนแทนที่เป็นอีโมติคอน

ผมงงมากเลย นั่งมัวอยู่นานละ TT


ขอช่วยหน่อยนะครับ TT


( PHP Web Other หากตั้งคำถามไม่ได้ ลบไปเลบครับ ... )


เพิ่มเติมนะครับ

$strName = ชื่อผู้ส่งข้อความ
$strMessage = ข้อความที่ถูกส่ง

บันทึกข้อความในไฟล์ .txt

arafarn12 โพสต์ 2011-9-27 15:06:02

เดี๋ยว พี่เอ / พี่นิว / เฮน มาเมื่อใหร่ จะลากให้มาตอบกระทู้ทันที sm914dz

arafarn12 โพสต์ 2011-9-27 16:15:19

ต้นฉบับโพสต์โดย popiazaza เมื่อ 2011-9-27 15:52 static/image/common/back.gif
ไม่มีชื่อผม ... งั้นผมไม่ตอบปัญหาให้ละกัน 55+ ...

:curse: ตอบมา ๆๆๆๆ {:18_786:}

Mr.Jak โพสต์ 2011-9-27 17:25:44

ที่แน่ๆ$strText1 = $em->apply("$strName say : $strMessage\r\n");ต้องอยู่หลังการกำหนดคลาส (เขาเรียกอย่างนี้หรือเปล่านะ) ครับ

rokaisakkon โพสต์ 2011-9-27 17:34:39

บอก ตรง ๆ ไม่เคยทำ chat

แต่ถ้าพื้นฐานน่าจะแบบนี้function Emotion($strMessage){

$emo = array(
"url/image/emo1.jpg",
"url/image/emo2.jpg",
"url/image/emo3.jpg",
"url/image/emo4.jpg",
"url/image/emo5.jpg"
);

$strMessage=str_replace("emo1",$emo,$strMessage);
$strMessage=str_replace("emo2",$emo,$strMessage);
$strMessage=str_replace("emo3",$emo,$strMessage);
$strMessage=str_replace("emo4",$emo,$strMessage);
$strMessage=str_replace("emo5",$emo,$strMessage);

return $strMessage;
}





สมมุติ ชื่อ อีโม

emo1
emo2
emo3
emo4
emo5


เวลาใช้งาน

$strMessage = Emotion($strMessage);

rokaisakkon โพสต์ 2011-9-27 17:39:57

แก้ไขครั้งสุดท้ายโดย rokaisakkon เมื่อ 2011-9-27 17:42

เห็น jchat ไป ดึงในdbมาแล้ว เขียนไฟล์ php ตามหลักการด้านบนอะ

ฉลาด โพสต์ 2011-9-27 17:41:02

แก้ไขครั้งสุดท้ายโดย ฉลาด เมื่อ 2011-9-27 21:59

แก้ไขครั้งสุดท้ายโดย ฉลาด เมื่อ 2011-9-27 17:52



แต่ขอผมแบบนี้น่ะ<style type="text/css">
   @import url(style1.css);
</style>
<?php error_reporting(E_ERROR); ?>


<head>
<script type="text/javascript">
function validate_required(field,alerttxt)
{
with (field)
{
if (value==null||value=="")
{alert(alerttxt);return false}
else {return true}
}
}

function validate_form(thisform)
{
with (thisform)
{
if (validate_required(entry,"ยังไม่ได้ใส่อะไรเลย")==false)
{entry.focus();return false}
}
}
</script>
</head>



<?php
session_start();
header("Cache-control: private");
?>


<head>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620" />
<script>
function show_it(layername) {
document.getElementById(layername).style.display = 'inline';
}
function hide_it(layername) {
document.getElementById(layername).style.display = 'none';
}
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=150,height=350,left = 580,top = 262');");
}
function addSmiley(code)
{
var comments = document.getElementById("chat")
var cache = comments.value;
this.code = code;
comments.value = cache + "" + code + " ";
comments.focus();
}
</script>
</head>
<body onLoad="<br />
<br />
<div class="formarea">
<font face="MS Sans Serif" size="3" color="#800000">emo : </font>
<img src=ที่เก็บ EMO/1.gif" onclick="addSmiley('&lt;img src= ที่เก็บ EMO /1.gif&gt;');" />
<img src="ที่เก็บ EMO/2.gif" onclick="addSmiley('&lt;img src=ที่เก็บ EMO/2.gif&gt;');" />
<img src="ที่เก็บ EMO/3.gif" onclick="addSmiley('&lt;img src=ที่เก็บ EMO/3.gif&gt;');" />
<img src="ที่เก็บ EMO/4.gif" onclick="addSmiley('&lt;img src=ที่เก็บ EMO/4.gif&gt;');" />
<img src=ที่เก็บ EMO/5.gif" onclick="addSmiley('&lt;img src=ที่เก็บ EMO/5.gif&gt;');" />
<img src="ที่เก็บ EMO/6.gif" onclick="addSmiley('&lt;img src=ที่เก็บ EMO/6.gif&gt;');" />
<img src="ที่เก็บ EMO/7.gif" onclick="addSmiley('&lt;img src=ที่เก็บ EMO/7.gif&gt;');" />
<img src="ที่เก็บ EMO/8.gif" onclick="addSmiley('&lt;img src=ที่เก็บ EMO/8.gif&gt;');" />
<img src="ที่เก็บ EMO/9.gif" onclick="addSmiley('&lt;img src=ที่เก็บ EMO/9.gif&gt;');" />
<img src="ที่เก็บ EMO/10.gif" onclick="addSmiley('&lt;img src=ที่เก็บ EMO/10.gif&gt;');" />
<img src="ที่เก็บ EMO/11.gif" onclick="addSmiley('&lt;img src=ที่เก็บ EMO/11.gif&gt;');" />
</div>
<br />

<form action="" onSubmit="return validate_form(this)" method="post">
<input type="text" name="entry" id="chat" size="100" class="" style="font-family: Microsoft Sans Serif; font-size: 10pt; color: #000080; border: 1px dotted #800000; background-color: #CCFFCC" />
<input type="submit" name="submit" value="แชร์" style="font-family: Microsoft Sans Serif; font-size: 10pt; color: #800000; border: 1px dashed #008000; background-color: #CCFF99">
<input type="hidden" name="sub">
</form>

</form>


<?php
if (isset($_POST['sub'])) {       


$entry = $_POST['entry'];
$newline = "\n";
$user = $_SESSION['name'];
$font = "<font color=".$_SESSION['color'].">";
$endfont = "</font>";



$fp = fopen("./chatscript.txt","a");

if(!$fp) {
    echo 'Error: Cannot open user file, you may need to sign up (again).';
    exit;
}

fwrite($fp, $font.$user.":  ".$entry.$endfont."<br>".$newline);

fclose($fp);


}
?>

1.gif
1.gif
2.gif
3.gif
4.gif
5.gif
6.gif
7.gif
8.gif
9.gif
10.gif
11.gif

แทน emo

นี่ครับที่ผมทำ


บวกให้มั่งจิ

cyber2friends โพสต์ 2011-9-27 17:44:08

ผมไม่แน่ใจนะ
"str_replace"
คำสั่งนี้อ่าครับ

ฉลาด โพสต์ 2011-9-27 17:56:43

ต้นฉบับโพสต์โดย cyber2friends เมื่อ 2011-9-27 17:44 static/image/common/back.gif
ผมไม่แน่ใจนะ
"str_replace"
คำสั่งนี้อ่าครับ ...

"str_replace" เดาๆเอานะคือเรียกอีโมขึ้นมาไง
หน้า: [1]
ดูในรูปแบบกติ: [PHP] ใช้ระบบแทนที่ข้อความในห้องแชท เพื่อทำเป็น Emoticon [ถามปัญหาครับ ด่วนมาก TT]