[PHP] ว่าด้วยการเช็ค mime type ของไฟล์ที่อัพโหลด

ในกรณีปกติถ้าอัพผ่าน form ปกติ ก็จะเช็ค แบบในลักษณะ $_FILES['file']['type'] ได้ไม่มีปัญหา ก็จะได้ข้อมูลมีค่าเป็น image/jpge

แต่!!.. ถ้าใช้ผ่าน flash upload หรือใช้ curl อัพโหลดข้าม server หรือส่งต่ออีกทอดหนึ่ง mime type จากการเช็คในรูปแบบ $_FILES['file']['type'] ก็จะได้ค่าที่ผิดเพี้ยน เป็น application/octet-stream แต่ถ้าจะเช็คให้ได้ถูกต้อง ต้องเปลี่ยนวิธีเช็คนิดหน่อยโดยการใช้ฟังก์ชั่น mime_content_type โดยการเอาที่อยู่ไฟล์นั้นๆ มาเช็ค ตัวอย่างการใช้:: mime_content_type($_FILES['file']['tmp_name']);

ก็จะได้ค่าเป็น image/jpge ซึ่งเป็นค่าที่ถูกต้อง..

ปล. ในตัวอย่างนี้สมมุติว่าอัพโหลดไฟล์รูป

ลบโลโก้ยูทูปออกจากตัวเล่นวีดีโอ

ตามลิ้งค์นี้เลย ในหัวข้อ “Logoless player” > http://youtube-global.blogspot.com/2011/06/next-step-in-embedded-videos-hd-preview.html

โปรแกรมอ่านออกเสียงภาษาไทย (รุ่น 0.1)

เอาไว้ให้มันอ่านข่าวหรือบทความประโยคยาวๆ ในเวลาที่เราขี้เกลียดอ่าน 55
อ้อ.. ในการใช้งานต้องต่อเน็ตด้วยนะ

โหลดไปลองเล่นได้เลย: http://iamnut.com/downloads/SpeakThai-V0.1.rar

ปล. เล่นระวังเจอ Bug เกรียนๆนะฮับ55

[C#] การอ่านข้อมูลในไฟล์ที่ต้องการ

using System.IO;

StreamReader streamReader = new StreamReader(@"C:\myfile.txt");
string text = streamReader.ReadToEnd();
streamReader.Close();

อ่านข้อมูลมาทั้งก้อนทีเดียวจากไฟล์ “myfile.txt” มาไว้ในตัวแปร test ซึ่งมีชนิดเป็น string

ปล. เขียน Blog มักง่ายไปป่ะเนี่ย 555

TurboC On Windows 7 x64

ถ้าใครใช้ TurboC บน Windows 7 64bit จะเกิดปัญหาการรันโปรแกรมไม่ขึ้นเพราะ Windows 7 64bit ไม่รองรับการทำงานของโปรแกรมที่ทำงานบน Mode 16bit อีกต่อไปแล้ว ฮาๆ
แต่แล้วจะทำยังไงล่ะ ? ในเมื่อเราใช้ Windows 7 อยู่และไม่อยากย้อนกลับไปลง Windows XP หรือรุ่นที่เก่ากว่านั้น งานนี้พระเอกของเราคือ DosBox ที่จะทำหน้าที่จำลองการทำงานระบบคอมพิวเตอร์เสมือนขึ้นมาซ้อนไว้บน Windows 7 ของเราอาห์.. อย่างนี้เราก็สามารถใช้โปรแกรมไดโนเสาร์ อย่าง TurboC บน Windows 7 ที่ทันสมัยได้แล้ว!!


#include <graphics.h>
#include <conio.h>

void main()
{
    int gd=DETECT, gm;
    int poly[12]={350,450, 350,410, 430,400, 350,350, 300,430, 350,450 };
    initgraph(&gd,&gm,"C:\\tc\\bgi");
    circle(100,100,50);
    outtextxy(75,170, "Circle");
    rectangle(200,50,350,150);
    outtextxy(240, 170, "Rectangle");
    ellipse(500, 100,0,360, 100,50);
    outtextxy(480, 170, "Ellipse");
    line(100,250,540,250);
    outtextxy(300,260,"Line");
    sector(150, 400, 30, 300, 100,50);
    outtextxy(120, 460, "Sector");
    drawpoly(6, poly);
    outtextxy(340, 460, "Polygon");
    getch();
    closegraph();
}

อ่านก่อนสักนิด

  • ถ้ามีการใส่ไฟล์ใดๆ ใหม่ลงไปใน “DriveD in TurboC” โปรแกรมจะไม่เห็นไฟล์นั้นๆ ให้ปิดแล้วเปิดใหม่
  • ตำแหน่งของโปรแกรม TurboC จะอยู่ที่ c:\tc ถ้าการเขียนโปรแกรมต้องมีการอ้างถึง อย่าไปอ้างถึงผิดที่แล้วบอกว่าใช้ไม่ได้ล่ะ

ดาวน์โหลดตัวติดตั้งได้ ที่นี่ เลย!

[PHP] Script Update DDNS and Reboot Router SMC7904WBRA2

Class ตัวนี้ ทำไว้ใช้ที่ Office นานแล้ว หลักการไม่มีอะไรมากแค่ใช้ Curl ไปเปิดลิ้งค์สั่งการ Router เท่านั้น
ที่จริงใช้ Curl เพียวๆ เลยก็ได้นะ ก๊ากกกก! ทำทำอะไรให้ยุ่งยากจริงๆ…

<?php
/**
  * Developer: Titiwut Muktikanantakun (Nut)
  * Version: 0.01
  **/
class RouterReboot
{
	private $host;

	private $url_login;
	private $url_logout;
	private $password;
	private $url_reboot;
	private $url_ddns;
	private $ddns_enable;
	private $ddns_provider;
	private $ddns_domainame;
	private $ddns_account;

	private function setval()
	{
		$this->host				= "http://"."192.168.2.1";

		$this->url_login		= $this->host. "/cgi-bin/login.exe";
		$this->url_logout		= $this->host. "/cgi-bin/logout.exe";
		$this->password			= "pws=smcadmin";

		$this->url_reboot		= $this->host. "/cgi-bin/restart.exe";

		$this->url_ddns			= $this->host. "/cgi-bin/setup_ddns.exe";
		$this->ddns_enable		= 0;				# 0 = Disable # 1 = Enable
		$this->ddns_provider	= 0;				# 0 - DynDNS.org # 1 - TZO.com # 2 - NO-IP.com
		$this->ddns_domainame 	= "xxxx.xxx"; 		# test.com
		$this->ddns_account		= "xxx@xxxx.xxx";	# Account / E-mail
		$this->ddns_password	= "xxxxxxx";		# password
	}

	public function Run()
	{
		$this->setval();

		switch ($_GET['cmd'])
		{
			case reboot:
				$this->Login();
				$this->Reboot();
				break;
			case ddns:
				$this->Login();
				$this->UpdateDdns();
				break;
			default:
				echo "..........";
				exit(0);
				break;
		}

		$this->Logout();
	}

	private function Login()
	{
		$ch = curl_init($this->url_login);

		curl_setopt($ch, CURLOPT_POST, true);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $this->password);
		ob_start();
		$exec = curl_exec($ch);
		ob_end_clean();

		if (!strstr($exec, 'index.stm'))
		{
			echo "time: " .date("Y-m-d H:i:s")." | Incorrect Password\n";
			curl_close($ch);
			exit(0);
		}
		else
		{
			echo "time: " .date("Y-m-d H:i:s")." | Login Success\n";
		}

		curl_close($ch);
	}

	private function Logout()
	{
		$ch = curl_init($this->url_logout);
		ob_start();
		curl_exec($ch);
		ob_end_clean();
		echo "time: " .date("Y-m-d H:i:s")." | Logout Success\n";
		curl_close($ch);
	}

	private function UpdateDdns()
	{
		$ch = curl_init($this->url_ddns);
		curl_setopt($ch, CURLOPT_POST, true);

		if ($this->ddns_enable == 1)
		{
			$SendPost = "ddns_enable=" .$this->ddns_enable
						."&ddns_provider=" .$this->ddns_provider
						."&ddns_domainame=" .$this->ddns_domainame
						."&ddns_account=" .$this->ddns_account
						."&ddns_password=" .$this->ddns_password;
		}
		else
		{
			$SendPost = "ddns_enable=" .$this->ddns_enable;
		}

		curl_setopt($ch, CURLOPT_POSTFIELDS, $SendPost);
		ob_start();
		$exec = curl_exec($ch);
		ob_end_clean();
		echo "time: " .date("Y-m-d H:i:s")." | Update Dynamic DNS Success\n";
		curl_close($ch);
	}

	private function Reboot()
	{
		$ch = curl_init($this->url_reboot);
		ob_start();
		curl_exec($ch);
		ob_end_clean();
		echo "time: " .date("Y-m-d H:i:s")." | Reboot Now\n";
		curl_close($ch);
	}
}

$RT = new RouterReboot();
$RT->Run();

?>

เช็ค Session ที่เปิดอยู่ผ่าน Command Line

query session

query session จะแสดงรายชื่อ Session ที่เปิดทำงานอยู่ละบอกสถานะว่า Disconnected หรือ Active และยังบอก Client Name …

reset session #ID Session#

ถ้าต้องการปิด Session ใดๆ ทิ้งก็ใช้คำสั่ง reset session ตามด้วยไอดีของ Session นั้นๆ

ปล. ที่จริงใช้ Windows Task Manager ตรงที่ tab users ก็ได้นะเออ ง่ายดี 55+

[C#] สร้างเสียง Beep

เรียกใช้ library kernel32.dll เพื่อจะเรียกใช้ฟังก์ชั่น Beep เพื่อสร้างเสียง Beep โดยฟังก์ชั่น Beep( ความถี่เสียง, ความยาวเสียง);
แล้วเราก็จะใช้ Sleep ในการหยุดการทำงานไว้หน่วยเป็นมิลลิวินาที

using System;
using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
    class Program
    {
        [DllImport("Kernel32.dll")]
        public static extern bool Beep(UInt32 frequency, UInt32 duration);

        static void Main(string[] args)
        {
            Beep(1000, 300);
            System.Threading.Thread.Sleep(300);
            Beep(2000, 400);
            System.Threading.Thread.Sleep(300);
            Beep(5000, 200);
            System.Threading.Thread.Sleep(300);
            Beep(5000, 800);
            System.Threading.Thread.Sleep(300);
        }
    }

}

รู้จักน้ำท่วมให้มากขึ้น

วีดีโอดีๆ (โดย: กลุ่มอาสาสมัครทำสื่อวิดีโอสร้างสรรค์) แนะนำช่วงน้ำท่วม ตอนนี้มีออกมาแค่ 2 ตอน..

ตอนที่ 1: รู้จักน้ำท่วมให้มากขึ้น

ตอนที่ 2: 3 คำถามยอดฮิต

ตอนที่ 3: เตรียมตัวก่อนน้ำมาถึง

ตอนที่ …: ติดตามได้ที่ http://www.youtube.com/user/roosuflood

เปลี่ยนสีเวลาคลุมดำให้หน้าเพจ (selection)

งานนี้ไปเจอโดยบังเอิญแท้ๆ พอดีเข้าไปเว็บของมหาลัยศรีประทุมแล้วเผลอเอาเมาส์ไปลากคลุมข้อความแล้ว… เอ๊ะๆ ทำไมสีมันแปลกๆ (โครตสวยเลยสาด) เลยลองแกะโค้ดดู… อ้ออออ

::-moz-selection { background: #FF5E99; color:#fff; text-shadow: none; }
::selection { background:#FF5E99; color:#fff; text-shadow: none; }

เพราะโค้ด css ตัวนี้นี่เองแต่น่าเสียดายมันใช้ได้แค่กับ IE 9+ | FF | ตระกูล webkit (Safari, Chrome) | Opera 9.5+

ปล. ::-moz-selection จะใช้กับ FireFox เท่านั้น – ทำไมไม่ไปใช้ ::selection ให้เหมือนชาวบ้านว้าาา..