Archive for the ‘PHP’ Category

จับเวลา Process หน้าเว็บดีกว่า

Friday, February 22nd, 2008 |

เคยเห็นเว็บไซต์หลายๆเว็บที่มีการแสดงผลในลักษณะนี้ไหม

process-001.jpg
จากเว็บ 9aum แห่ง Scriptdd.com

process-002.jpg
จาก Appservnetwork.com

มีมากมายหลายเว็บมากที่เอามาจับเวลาการประมวลผลหน้าเว็บไซต์ ไม่เว้นแม้แต่ Google เอง ก็ยังมีการประมวลผลหน้าเว็บครับ

process-003.jpg
จาก Google.co.th ครับ

อ่ะมาลองเขียนกันดีกว่า ผมก็เอามาจาก Class ของต่างประเทศครับเอามาให้ลองเล่น และนำไปใช้งานกัน เอ๊า!!! ลุย…..

เขียน Class ขึ้นมาก่อนครับ โดยผมตั้งชื่อว่า processing.class.php

<?php
class Processing{

  function __construct(){

  }
  public function Start_Time(){
  return time()+ microtime();
  }
  public  function End_Time(){
  return time()+ microtime();
  }
  public function Total_Time($ini_t,$end_t){
  return round($end_t - $ini_t,4);
  }
  public function show_msg($time){
   echo “Page generated in $time seconds !”;
  }
}
?>

อีกอันหน้าในการแสดงผลครับ

<?php
require_once(”processing.class.php”);
//บนสุดของหน้า
$Time = new Processing(); // instance to class processing
$start = $Time->Start_Time(); // inits time

?>

<!– เนื้อหาใส่เข้าไป –>
<?
echo “My Page….”;
?>
<!– จบการแสดงเนื้อหา –>
<br /><br />

<?php
//ท้ายสุดของหน้า
$end   = $Time->End_Time();
$total = $Time->Total_Time($start,$end);
$Time->show_msg($total);
?>

ผลที่ออกมาก็เป็นแบบนี้ครับ ผมเอาทำไว้ที่ CMusedcar.com ครับ

process-004.jpg
หน้าแรกของ CMusedcar.com ครับ

ตัวเลขยิ่งน้อยแปลว่ายิ่งดีครับ สำหรับตัวเลขที่ผมได้จากหน้าแรกของ  ผมค่อนข้างดีใจครับเพราะว่าหน้านี้มีการคิวรี่ข้อมูลมากที่สุด เยอะที่สุด แต่สามารถทำออกมาได้ 0.0733 ซึ่งถือว่าดีมาก และมีการจัดการเรื่องของ Database Optimize ได้ค่อนข้างดี หากผมลองใช้คำสั่ง join table รับรองเวลาใช้นานกว่านี้แน่นอนครับ

process-005.jpg
หน้าแสดงรถแต่ละคันทำออกมาได้ 0.0038 ไวมากครับ

หากสามารถทำออกมาให้ได้ 0.00XX เนี่ยจะถือว่าไวมากๆครับ ไงลองเอาไปจับเวลาการ Process หน้าเว็บของคุณดูกันนะ

กลัวตัวเองลืม ตัวแปร ระบบ

Wednesday, February 20th, 2008 |

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

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

Variable

Description

DOCUMENT_ROOT บอกค่าของ Directory ที่เป็น Root ของ Web Server
HTTP_ACCEPT MIME Type ที่ Browser ของ User สามารถรับได้ เช่น image/gif
HTTP_ACCEPT_ENCODING มาตรฐานการเข้ารหัสที่ Browser ของ User สามารถรับได้เช่น gzip
HTTP_ACCEPT_LANGUAGE ภาษาที่ Browser ของ User สามารถรับได้ เช่น th, iso8859-1
HTTP_CONNECTION ลักษณะ Connection เช่น Keep-Alive
HTTP_HOST ชื่อ Host
HTTP_USER_AGENT ชื่อ Web Browser ของผู้ใช้ ทั้งนี้หากใช้งานร่วมกับ Function get_browser() และการตั้งค่า browscap.ini จะช่วยให้ทราบว่า Browser ดังกล่าว สามารถทำงานอะไรได้บ้าง
PATH เป็น PATH ของ ระบบ
REMOTE_ADDR IP ของเครื่อง USER
REMOTE_PORT Port ของเครื่อง USER
SCRIPT_FILENAME path ที่ไปยังไฟล์ Script ดังกล่าว (สัมพัทธ์กับ DOCUMENT_ROOT)
SERVER_ADDR IP ของเครื่อง SERVER
SERVER_ADMIN e-mail ของผู้ดูแล Server
SERVER_NAME ชื่อของ SERVER
SERVER_PORT PORT ของ SERVER (ปกติคือ 80)
SERVER_SIGNATURE รายละเอียดของระบบ Web Server เช่น Apache/1.3.2 at www.host Port 80
SERVER_SOFTWARE ชื่อซอฟต์แวร์ระบบ Web Server เช่น Apache/1.3.12 (Unix) PHP/4.0.1pl2
GATEWAY_INTERFACE มาตรฐาน CGI ของระบบ เช่น CGI/1.1
SERVER_PROTOCOL มาตรฐาน HTTP ของ SERVER เช่น HTTP/1.1
REQUEST_METHOD วิธีการเรียกใช้ SCRIPT เช่น GET, POST, HEAD, PUT เป็นต้น
QUERY_STRING เป็น QUERY_STRING ที่เรียกมายังหน้าดังกล่าว เช่น URI เป็น test.php?hello จะได้ว่า QUERY_STRING คือ hello
REQUEST_URI เป็น URI ที่ผู้ใช้เรียกมาถึงหน้าดังกล่าว
SCRIPT_NAME ชื่อของ file ที่ทำงาน SCRIPT ดังกล่าว

ผมลองสร้างไฟล์มาสักไฟล์นึงละกันชื่อว่า Variables.php โดยผมเขียนโค๊ดดังนี้ แล้วเอารันบน Appserv 2.5.9 ครับ

<?
echo $_SERVER[’DOCUMENT_ROOT’].”<br />” ;
echo $_SERVER[’HTTP_ACCEPT_LANGUAGE’].”<br />” ;
echo $_SERVER[’HTTP_HOST’].”<br />” ;
echo $_SERVER[’PATH’].”<br />” ;
echo $_SERVER[’REMOTE_ADDR’].”<br />” ;
echo $_SERVER[’SERVER_ADDR’].”<br />” ;
echo $_SERVER[’SERVER_SOFTWARE’].”<br />” ;
echo $_SERVER[’REQUEST_URI’].”<br />” ;
?>

ซึ่งเมื่อรันออกมาก็จะได้ผลดังนี้

C:/AppServ/www
th
localhost:8080
C:\Program Files\PC Connectivity Solution\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\
127.0.0.1
127.0.0.1
Apache/2.2.4 (Win32) PHP/5.2.3
/My/Variables.php

แค่นี้แหล่ะง่ายๆ คราวหน้าลืมอีกก็ค่อยมาเปิดดูที่ตัวเองเขียนเอาไว้ (ฮา…..)

มาประกอบร่างสร้างการ์ตูนกันเหอะ

Sunday, February 17th, 2008 |

ใครเคยสร้างไอคอนส่วนตัวในแบบการ์ตูนเพื่อเอามาใส่ใน Display ของ MSN บ้าง ในลักษณะแบบนี้

_1203214940_242.gif
สร้างมาจากเว็บไซต์นะครับ

ซึ่งเป็นการสร้างตัวการ์ตูนนี้จากเว็บไซต์
http://illustmaker.abi-station.com/index_en.shtml

ซึ่งผมเองก็ได้ก๊อบรูปต่างๆจากเว็บนี้แล้วเอาไปใส่ในเว็บผมเช่นกัน อิอิ เพื่อให้สมาชิกสร้างไอคอนส่วนตัวได้ ก็เลยคิดว่าเอาโค๊ดมาให้ลองศึกษาในส่วนของการนำรูปมาสร้างเป็นตัวการ์ตูนดีกว่า โดยที่ผมมีรูปดังนี้

001.gif
รูปชื่อ 000.gif

002.gif
รูปชื่อ 002.gif

003.gif
รูปชื่อ 003.gif

004.gif
รูปชื่อ 004.gif

โดยผมจะเขียนเอารูป 4 รูปมาประกอบเป็นรูปเดียว สังเกตุดูนะครับ รูปที่ 003.gif มันดิ้นด้วย แต่พอเอาไป Create ใน PHP มันจะจับเอาเฟรมแรกมาอย่างเดียว ซึ่งกำลังหาๆวิธีที่อยากให้มันดิ้นได้อยู่ว่าจะทำไง (ใครทำได้ก็มาแนะนำบ้างเด้อ อิอิ)

มาดูโค๊ดก็ไม่ได้มีอะไรยากเลยครับ

<?
header(”Content - type : image:/gif”);
$im = @imagecreatetruecolor(140,226);

for($i=1;$i<=4;$i++){ //วนลูปเอารูปทั้ง 4 รูปมาประกอบ
 $filename = “00″.$i.”.gif”;
 $img = @imagecreatefromgif($filename);
 imagecopymerge($im, $img, 0, 0, 0, 0, 140,226,100);
}

imagegif($im);
imagedestroy($im);
?>

แค่ประมาณ 10 บรรทัดเองก็สามารถสร้างรูปสวยๆเป็นไอคอนได้แล้ว

005.gif
ดูดีไหมครับ

ลองๆเล่นดูนะครับกับพวกฟังก์ชั่นพวกนี้ หากใช้เป็นก็มีประโยชน์มากๆเลยทีเดียว

นึกถึงวันเก่าๆ นึกถึง Fast Counter จัง

Saturday, February 16th, 2008 |

สำหรับ Webmaster ยุคแรกๆคิดว่าคงไม่มีใครที่ไม่รู้จัก FastCounter ซึ่งเป็นบริการ Free Counter ที่มีเว็บไซต์ทั่วโลกใช้งานน่าจะมากที่สุด ณ ตอนนั้น ซึ่งหลังๆมาเห็นมันออกบ้างไม่ออกบ้าง และในที่สุดในเว็บผมเองมันก็ไม่แสดงผลอีกเลย ซึ่งเว็บไซต์ของ Fast Counter เมื่อก่อนจะเป็น http://member.bcentral.com/ ซึ่งตอนนี้เมื่อเข้าไปก็เข้าไม่ได้ แต่พอเข้าที่ http://www.bcentral.com/ จะกลายเป็นหน้าตาแบบนี้

fastcounter001.jpg
กลายเป็นหน้าตาของ Microsoft ไป

ก็จำได้ว่าเมื่อก่อนผมเคยเขียนโค๊ดเล่นๆสำหรับแจก Counter ไว้ก็เลยจัดแจงไป FTP เอาไฟล์เก่าๆมาเขียนให้อ่านกัน ให้เห็นแนวทางในการเขียนรูปแบบของ Counter กัน

fastcounter002.gif
อันนี้เป็น Counter จาก Fast Counter

fastcounter003.gif
อันนี้เป็นที่ผมเลียนแบบขึ้นมา เหอๆ

สำหรับโค๊ดนั้น ผมตัดๆในส่วนของการ บวกเลข Counter ไปนะครับ เอาแค่หลักการวาดรูป Counter มาให้ดูก็พอนะครับ หากมีเวลามานั่งแกะใหม่อาจจะเขียนให้มีอะไรได้เยอะกว่านี้ แต่นี่เป็นโค๊ดที่ผมเขียนไว้ราวๆ 6-7 ปีก่อนแล้ว อาจจะดูเด็กๆไปก็ได้ครับ อ่ะ มาดูโค๊ดกัน

<?
header(”Content - type : image:/png”);

//Config
$Digit = 12345678 ; //เลขจำนวนที่จะแสดงผล
$FC_bg = “black” ; //สีพื้น
$FC_text = “white” ; //สีตัวเลข
$FC_border = “none”; //มีเส้นขอบหรือไม่ หากไม่มีก็ none หากมีก็ใส่ชื่อสีลงไป

//////////////////// สร้างรูปภาพ /////////////////////////////
$height = 16 ;
$width = 90;
$im = ImageCreate($width,$height);

//กำหนดสี เอาชื่อสีพวกนี้ใส่ใน Config
$black = ImageColorAllocate($im,0,0,0);
$white = ImageColorAllocate($im,255,255,255);
$red = ImageColorAllocate($im,255,0,0);
$blue = ImageColorAllocate($im,0,0,255);
$lightblue = ImageColorAllocate($im,0,128,255);
$green = ImageColorAllocate($im,0,255,0);
$violet = ImageColorAllocate($im,225,128,225);
$orange = ImageColorAllocate($im,255,128,0);
$gray = ImageColorAllocate($im,192,192,192);
$pink = ImageColorAllocate($im,255,0,128);
$brown = ImageColorAllocate($im,128,0,0);
$darkgreen = ImageColorAllocate($im,0,128,0);

$bg = $$FC_bg ;
$textcolor = $$FC_text ;
if($FC_border == “none”){$border = $bg ;}else{ $border = $$FC_border ;};

//กำหนดพื้นที่โลโก้
$bluelogo = ImageColorAllocate($im,25,25,255);
$bluelogo2 = ImageColorAllocate($im,180,180,255);
$bluelogo3 = ImageColorAllocate($im,0,0,160);
ImageRectangle($im,2,2,13,13,$bluelogo);
ImageFillToBorder($im,10,10,$bluelogo,$bluelogo);
//ขอบโลโก้
ImageLine($im,1,1,14,1,$bluelogo2); //บน
ImageLine($im,1,1,1,14,$bluelogo2);  //ล่าง
ImageLine($im,2,14,14,14,$bluelogo3);  //ซ้าย
ImageLine($im,14,2,14,14,$bluelogo3);  //ขวา

//กำหนดสีพื้น Counter
ImageFill($im,0,0,$bg);

//ตีขอบบน
ImageLine($im,0,0,$width,0,$black);

//ตีขอบล่าง
ImageLine($im,0,$height-1,$width,$height-1,$black);

//ตีขอบซ้าย
ImageLine($im,0,0,0,$height,$black);

//ตีขอบขวา
ImageLine($im,$width-1,0,$width-1,$height,$black);

ImageLine($im,15,1,15,15,$black);  //คั่นขวา Logo

//เลือกใส่กรอบล้อมตัวเลข
ImageRectangle($im,88,1,16,14,$border);

$string = sprintf(”%08d”,$Digit) ;
ImageString($im,3,2,-1,M,$white);  //Logo
ImageString($im,3,8,3,C,$white);   //Logo
ImageString($im,3,30,1,$string,$textcolor);

//แสดงผล
ImagePng($im);
?>

ผมใส่ comment ต่างๆไว้อยู่แล้วก็ลองแกะๆเล่นดูได้เลย
ใช้แค่หลักการวางตำแหน่ง การสร้างเส้น แล้วเอามาประกอบกันนะครับ ^_^

เมื่ออยากดึง PHP ในแบบ Javascript

Monday, February 11th, 2008 |

หลายๆครั้งที่บางคนต้องการแชร์ข้อมูล หรือ แชร์ข้อมูลจาก เว็บบอร์ดบ้าง , ประกาศซื้อขายบ้าง ไปแปะบนเว็บไซต์คนอื่น บางคนทำเป็น xml บางคนทำเป็น Iframe หรือบางครั้งแจกไฟล์ PHP ไปเลยก็มี

แต่จะมีปัญหามาก หากเว็บมาสเตอร์ของเว็บไซต์ที่เราต้องการให้ติดโค๊ดของเรา ดันทำไม่เป็น เช่น ใช้ xml ไม่เป็น หรือ PHP ไม่ได้เก่งเลย จะทำไงหล่ะ มันคงหมดโอกาสที่ข้อมูลเว็บเราจะไปแปะบนเว็บนั้นแหงๆ :( ทำงายยยยดี….

วิธีไหนหล่ะจะเรียกใช้ได้ง่ายๆ ????????

ก็ JavaScript ไง เรียกใช้ง่าย บรรทักเดียวก็จบ แถมยังไม่ต้องเอา Iframe ไรมาใส่ให้ต้องมีสกรอต่างๆ

javausedcar.jpg

เวลาผมเรียกก็ไม่มีไรมากครับแค่เอาโค๊ดนี้ไปแปะหน้าเว็บที่ต้องการ

<script language=”JavaScript” type=”text/javascript” src=”http://www.cmusedcar.com/cmusedcar_java.php?TableWidth=600″ mce_src=”http://www.cmusedcar.com/cmusedcar_java.php?TableWidth=600″></script>

ไหงเรียกจาวาสคริปแต่เรียกไฟล์ชื่อ cmusedcar_java.php หว่า ?????

บางคนที่ไม่เคยทำอาจจะงง แต่คนที่เคยทำแล้วก็จะบอกหมูๆ เด๊ะๆ

หลักการก็ไม่มีไรครับ จัดแจงเอาค่าที่จะ echo จาก PHP ยัดลงไฟล์ที่สร้าง Header ที่เป็นจาวาสคริปก็จบ…

แล้วทำไงเพ่………

แหมๆ อย่าเพิ่งฉุนๆ ดูโค๊ดครับ ง่ายๆ

สมมุติโค๊ดนี่ชื่อ hello.php ก็แล้วกัน

<?php
function enjavanate ($str, $limit = 60)
{
 $str   = str_replace(”\r”, ”, $str);
 print “var JAVA = ”;\n\n”;
 while (strlen($str) > 0)
 {
  $line = substr ($str, 0, $limit);
  $str  = substr ($str, $limit);
  $line = str_replace(’\\’, “
\\\\“, $line);
  $line = str_replace(’\”, “\\’”, $line);
  $line = str_replace(”\r”, ”, $line);
  $line = str_replace(”\n”, “\\n”, $line);
  $line = str_replace(”\t”, “\\t”, $line);
  $line = str_replace(’<’, “<’+'”, $line);
  print “JAVA += ‘$line’;\n”;
 }
 print “\ndocument.write(JAVA);\n”;
}

$output = “<b>Hello From PHP…</b>” ;

header(”Content-type: application/x-javascript”);
enjavanate($output);
?>

จะเห็นว่าหากมีการเรียกสคริปดังนี้

 <script language=”JavaScript” type=”text/javascript” src=http://www.cmusedcar.com/hello.php”></script>

มันก็จะแสดงผล

Hello From PHP…

นะครับ

เห็นม่ะ ง๊ายยยยยง่าย…

Editor's Talk!

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

นายแม็ค

ค้นหา :