มาทำ ICON แสดงผล MSN Status Online กันดีกว่าครับ

ค่า timeout หน่วยเป็นวินาทีครับ ถ้าตั้งสูงไปบางครั้งเนตมีปัญหาอาจจะส่งผลให้แสดงหน้าเว็บได้ช้า เพราะรอ timeout
แนะนำว่าตรงที่เป็น status ให้ใช้เป็น iframe น่าจะดีกว่า ใส่ค่า timeout ได้สูงหน่อยโดยไม่ต้องกังวลว่าจะแสดงหน้าเว็บได้ช้า

ส่วนค่า 128 เป็นขนาด buffer length หน่วยเป็น byte ไม่ใช่้จำนวนบรรทัดครับ
แต่จะใส่ค่าเท่าไหร่ก็ได้เพราะมันวน loop while ไปจนกว่าจะสิ้นสุด แต่ก็ไม่ควรมากหรือน้อยเกินไป
โดยปกติก็ 32 64 128 256 ประมาณนี้

เอ่ผมจำมาผิดหรอเนี่ย

string fgets ( resource $handle [, int $length ] )

handle
The file pointer must be valid, and must point to a file successfully opened by fopen() or fsockopen() (and not yet closed by fclose()).

length
Reading ends when length - 1 bytes have been read, on a newline (which is included in the return value), or on EOF (whichever comes first). If no length is specified, it will keep reading from the stream until it reaches the end of the line.

Note: Until PHP 4.3.0, omitting it would assume 1024 as the line length. If the majority of the lines in the file are all larger than 8KB, it is more resource efficient for your script to specify the maximum line length.

ผมเองก็ไม่แน่ใจเหมือนกันครับไม่ทันเปิดอ่านให้ดีก่อน หากข้อมูลผิดขอโทษด้วยนะครับ
http://www.php.net/manual/en/function.fgets.php

ตามนี้เลยครับ ถูกแล้ว :slight_smile:
ง่ายๆก็ ลองใส่ค่า 3 แล้วดูว่า ได้มา 3 ตัวอักษร หรือ 3 บรรทัด (ต้องไม่วนลูปนะ get ครั้งเดียว) :slight_smile:

ส่งสัย จะจริงๆ .length ในที่นี้นับตัวอักษร เป็น String จริงๆ มั้งครับ
ทีแรกก็เข้าใจแบบนั้นเหมือนกัน ไม่รู้อ่านที่ไหน บอกว่า แต่ละบันทัดก็เลยนึกว่า length ในที่นี้นับ line นั้นและครับ เลยจำมาผิดๆ เลยไงขออภัยด้วยนะครับ ใครจำไปผิดๆ จากผมแก้จำไปใหม่นะครับ

เข้ามาต่อยอดให้ครับน้องมีน

โจทย์: ถ้ากรณีเรามีพนักงาน 3-4 คน แต่ละคนมี msn… แต่ script ของน้องมีนเช็คได้แค่เพียงสถานะของคนใดคนหนึ่งท่านั้น… อยากได้แบบที่ว่า ถ้ามีพนักงาน อย่างน้อย 1 คน Online ก็ให้มันแสดงว่า Live Help Online แต่ถ้าไม่มีพนักงานคนใด Online อยู่เลย ก็ให้แสดงว่า Live Help Offline แบบนี้จะทำยังไงครับ

คำตอบ: เอา script เดิมของน้องมีไปแก้ไขนิดหน่อย โดยใช้ array + foreach เข้ามาช่วย จะได้ script ดังต่อไปนี้

<?

//ใส่หมายเลข id ของเจ้าหน้าที่แต่ละคน [ หมายเลขที่อยู่หน้าข้อความ @apps.messenger.live.com/presenceimage?mkt=en-US ]

$ssid = array(“18e2x4xxx144bad42”,“73691f6xxx51axx746”,“311xxx05cxxe17fa9”,“90sss0c8eddde9”,“58dxxxfb85dddd0f5”);

function msn_monitor($msnid) {

$host="messenger.services.live.com"; 
$port="80"; 
$path="/users/".$msnid."@apps.messenger.live.com/presenceimage?mkt=th-TH";
$fp=fsockopen($host,$port);
fputs($fp,"POST $path HTTP/1.1

");
fputs($fp,“Host: $host
”);
fputs($fp,“Content-type: image/gif
”);
fputs($fp,“Content-length: “.strlen($data).”
”);
fputs($fp,"Connection: close

");

while(!feof($fp)){

โอวเพิ่งเห็น PM เยี่ยมยอดๆ จริงๆ ครับพี่เอก
เห่อ ไอ้ผมยังไม่มีพนักงานนี่ อาซี่ อยากจะหาสาวๆ มาช่วย Support คริๆ lol
ว่าไป พี่มีเจ้าหน้าที่เยอะเชียวนะเนี่ย

อ่อ ว่าไปก็มี เพื่อนสนิทเข้ามาช่วยทำงานคนนึงแล้วเหมือนกัน สบายไปเยอะเลย
ตอนนี้แอบดีใจครับเห็นหลายๆ ที่ นอกเหนือจากสมาชิก THT เอาสคิบนี้ไปใช้งานกันแบบ เยอะ มากเลยทีเดียว ปลื้มใจจริงๆ

ช่วยๆ กันครับ ถ้าระบบสมบูรณ์ แล้ว ก็แจกจ่ายให้เพื่อนๆ ได้เอาไปใช้กัน ตอนนี้พี่เอาไปพัฒนาต่อยอดไปอีกเยอะเลย แต่ก็ยังรอ Version ใหม่ของน้องมีน ด้วยนะครับ ว่างๆ ก็ลองเข้าไปดูที่เว็บพี่ได้ครับ (จะลองคุยกับพนักงานสาวๆ ของพี่ด้วยก็ไม่ว่านะครับน้องมีน)

ได้มีโอกาสแวะไปทักทายมาในช่วงแรกแล้วครับพี่เอก
นึกว่าพี่เอก มา online ซะอีก ที่ไหนได้ “สวัสดีค่ะ” ย๊ากกก

แต่ดูแล้ว ระบบที่นำมาโค พัฒนา เพื่อใช้งานนี้ มีการนำไปใช้งานที่เหมาะสม
มาก ถึงมากที่สุด สะดวก และรวดเร็ว โดยที่ไม่ต้องเสียค่าใช้จ่ายใดๆ ครับ
แต่ยังพบความยุ่งยากเพียงเล็กน้อยเท่านั้น

พอดีว่าจะทำต่อ แต่ยังไม่ค่อยมีเวลา เลย ผมเองทำมายังไม่ได้เอาไปใช้เองเลยเหมือนกัน
เดี่ยวช่วงปิดเทอมนี้ ทำแล้วแจก ให้ใช้กันแน่นอนครับ

แวะเข้ามา Update ให้นะครับ เนื่องจากทาง Live MSN มีการเปลี่ยนแปลง นิดหน่อย ทำให้ Script เดิมของน้องมีน ใช้งานไม่ได้ครับ

Script เดิมของน้องมีน

<?
// Create Source Date : 12-03-2008
// By K.Mean (http://www.ireallyhost.com)
// Title : Msn Status Checking
// PHP Developer … Easy And Share…

$host=“messenger.services.live.com”;
$port=“80”;
$path="/users/f2faป313cabf26d5@apps.messenger.live.com/presenceimage?mkt=en-US";

$fp=fsockopen($host,$port);
fputs($fp,“POST $path HTTP/1.1
”);
fputs($fp,“Host: $host
”);
fputs($fp,“Content-type: image/gif
”);
fputs($fp,“Content-length: “.strlen($data).”
”);
fputs($fp,"Connection: close

");

while(!feof($fp)){

ขอบคุณนะครับพี่เอก