หน่วยที่ 5 : รหัสต้นฉบับที่ขยายจากหน่วยที่ 2
|
|
ต.ย.
1 |
:: Send mail by HTML format
|
<?
# version 2 in html format : ! http://www.yonok.ac.th/burin/mailhtml.php
# version 1 in text : http://www.isinthai.com/isinthai/sndform.php
if (!isset($_POST{"mfrom"})) $_POST{"mfrom"} = "";
if (!isset($_POST{"mto"})) $_POST{"mto"} = "";
if (!isset($_POST{"msubj"})) $_POST{"msubj"} = "";
if (!isset($_POST{"message"})) $_POST{"message"} = "";
if (!isset($_POST{"redirect"})) $_POST{"redirect"} = "";
if (!isset($_GET{"mfrom"})) $_GET{"mfrom"} = "";
if (!isset($_GET{"mto"})) $_GET{"mto"} = "";
if (!isset($_GET{"msubj"})) $_GET{"msubj"} = "";
if (!isset($_GET{"message"})) $_GET{"message"} = "";
if (!isset($_GET{"redirect"})) $_GET{"redirect"} = "";
$mfrom = $_POST{"mfrom"} . $_GET{"mfrom"};
$mto = $_POST{"mto"} . $_GET{"mto"};
$msubj = $_POST{"msubj"} . $_GET{"msubj"};
$message = $_POST{"message"} . $_GET{"message"};
$redirect = $_POST{"redirect"} . $_GET{"redirect"};
if (empty($redirect)) { $redirect = "http://www.yonok.ac.th"; }
if (empty($message)) { $message = "<html><body bgcolor=red>
<a href=http://www.thaiall.com>thaiall.com</a><hr color=white>hello
</body></html>"; }
if (empty($mto) || empty($msubj) || empty($mfrom)) {
echo "<font face="courier new">";
echo "<form action=mailhtml.php method=post>";
echo ".. From : <input name=mfrom value='$mfrom' size=30><br>";
echo ".... To : <input name=mto value='$mto' size=30><br>";
echo "Subject : <input name=msubj value='$msubj' size=50><br>";
echo "Messages:<br><textarea name=message rows=10 cols=80>$message";
echo "</textarea> <input type=submit value='Send mail'>";
echo "<br><input name=redirect type=hidden value=$redirect>";
echo "</form>";
} else {
$msubj = "Subject _ ".$msubj;
mail("$mto,burin@yonok.ac.th","$msubj",$message,"From: $mfrom\r\n"
."Reply-To: $mfrom\r\n"
."MIME-Version: 1.0\r\n"
."Content-Type: text/html;charset=windows-874\r\n"
."Content-Transfer-Encoding: 7bit\r\n"
."X-Priority: 1\r\n"
."X-Mailer: PHP/" . phpversion());
// mail("$mto","$msubj",$message,"From: $mfrom\nX-Mailer: PHP/" . phpversion());
echo "<html><head><meta http-equiv=Refresh content='50; URL=$redirect'>";
echo "</head><body><font face="courier new"><pre>";
echo "From : $mfrom \n";
echo "To : $mto \n";
echo "Subject : $msubj \n";
echo "Message :<ul><font color=gray>" . htmlentities($message);
echo "</ul></font><hr color=red>Your message sending : <b>Completely</b>\n";
echo "Script developer : webmaster@thaiall.com\n";
}
?>
|
|
ต.ย.
2 |
:: Write image in JPEG format by GD JPEG supporting
|
ตัวอย่าง : http://www.thaiall.com/php/testjpg.php
<?
# some server no support GD GIF but support GD JPEG.
# you can check by phpinfo();
# test at http://www.lampang.go.th/webboard/securecode.php
# test at http://www.thaiall.com/php/testjpg.php
header("Content-type: image/jpeg");
$imagesize = 80;
$myImage = ImageCreate($imagesize, $imagesize);
$white = ImageColorAllocate($myImage, 255, 255, 255);
$red = ImageColorAllocate($myImage, 255, 0, 0);
ImageFill($myImage, 0, 0, $red);
Imageinterlace($myImage, 1);
Imagearc($myImage, 40, 30, 20, 10, 0, 359, $white);
ImageLine($myImage, 5, 5, 70, 60, $white);
Imagestring($myImage, 3, 5, 40, ("This กขค."), $white);
Imagejpeg($myImage);
Imagedestroy($myImage);
######## securecode.php ###########
# $FILE=file ("topic.htm") ;
# $key=count($FILE);
# $key=ord(substr(crypt($key,$key),6,1)) * 100;
# $key=$key + (ord(substr(crypt($key,$key),7,1)));
# header("Content-type: image/jpeg");
# $myImage = ImageCreate(80, 20);
# $white = ImageColorAllocate($myImage, 255, 255, 255);
# $red = ImageColorAllocate($myImage, 255, 0, 0);
# ImageFill($myImage, 0, 0, $red);
# Imagestring($myImage, 5, 5, 5, "$key", $white);
# Imagejpeg($myImage);
# Imagedestroy($myImage);
?>
|
|
ต.ย.
3 |
:: Listing of thumb nail and click to enlarge
|
ตัวอย่าง : http://www.lampang.go.th/nwt
<table width=100%>
<?
if (!isset($_GET["p"])) $_GET["p"] = 1;
$i = 0;
$dir_handle = opendir(".");
while ($list = readdir($dir_handle)) {
if (strtolower(substr($list,-5)) == "t.jpg") {
$ar[$i] = "<td><a href=../nw/".substr($list,0,6).".jpg>";
$ar[$i] .= "<img src=$list border=0></a></td>";
$last_modified = filemtime($list); // Ex. Monday, 27th October, 2003 @ 02:59pm
$ar[$i] .= " Last modified " . date("l, dS F, Y @ h:ia", $last_modified);
$i = $i + 1;
}
}
closedir($dir_handle);
srand(time());
$pp = 10;
$end = $_GET["p"] * $pp;
print "<table width=100%>";
for ($k=($end - $pp);$k<$end;$k++) {
// $j = rand() % $i;
// print $ar[$j];
print $ar[$k];
}
// echo (sprintf("%03d", 5) . strlen(sprintf("%03d", 5))); // 0053
print "</table>";
for ($c=1;$c<=($i / $pp);$c++) {
print "<a href=?p=$c>$c</a> | ";
}
?>
ตัวอย่าง : http://www.thaiall.com/win/openphotodir.php
<?
# <meta http-equiv=refresh content="1;url=openphotodir.php">
$h = "";
$w = "";
$b = "bgcolor=#400000";
if (isset($_GET['height'])) $h = " height=".$_GET['height'];
if (isset($_GET['width'])) $w = " width=".$_GET['width'];
if (!isset($_GET['height']) && !isset($_GET['width'])) $w = " height=120";
if (isset($_GET['bgcolor'])) $b = " bgcolor=".$_GET['bgcolor'];
?>
<body <?=$b;?>><font face="courier new" size=6 color=yellow>Open Photo Dir<br>Type :
<a href=?>1</a> | <a href=?type=thumb&height=150>2</a> |
<a href=?type=thumb&width=150>3</a> | <a href=?type=thumb&bgcolor=black>4</a> |
<br><base target=_blank><font color=#dddddd>
<?
if (!isset($_GET['type'])) echo "<ol>";
$d = opendir(".");
while ($list = readdir($d)) {
if (strtolower(substr($list,-4)) == ".jpg" || strtolower(substr($list,-4)) == ".gif") {
if (!isset($_GET['type'])) {
echo "<li><a href=$list>$list</a> ". filesize($list) ." byte\n";
} else {
echo "<a href=$list><img src=$list border=1 $h $w></a>\n";
}
}
}
if (!isset($_GET['type'])) echo "</ol>";
?>
</body>
ตัวอย่าง: แสดงเวลาปรับปรุงของแฟ้มล่าสุด
<?
$d = opendir('F:\IT\doc\burin\.');
while ($list = readdir($d)) {
$recs[date("Y m d G i", filemtime("../doc/burin/$list"))] = $list;
}
ksort($recs);
foreach ($recs as $k => $v){ $lar = split(" ",$k);
$lk = "$lar[2] $lar[1] $lar[0] $lar[3]:$lar[4]";
$lv = $v;
}
echo "<a title=$lv>$lk</a>";
?>
ตัวอย่าง: การเปิดรายชื่อแฟ้มให้ download
+ ใช้งานที่ http://www.thaiall.com/pdf/ohec/
<?
include("ihead.php");
echo "<table align=center width=600 border=1><tr><td bgcolor=white><ol>";
$i = 0;
$dir_handle = opendir(".");
while ($list = readdir($dir_handle)) {
if (strlen($list) > 10) {
echo "<li><a href=$list>$list</a></li>";
}
}
closedir($dir_handle);
echo "</ol></td><td width=100 bgcolor=gray> </td></tr></table>";
include("ifoot.php");
?>
|
|
ต.ย.
4 |
:: Array database of course description
|
ตัวอย่าง : http://yn1.yonok.ac.th/catalog/subjdesc.php
<html><head><title>Course description database</title></head>
<body bgcolor=#ffffdd><font face="microsoft sans serif" size=0>
<form action=subjdesc.php>
แสดงรายวิชาทั้งหมด [<a href=subjdesc.php>แบบรายชื่อ</a>,
<a href=subjdesc.php?codes=csv>แบบ CSV</a>]
หรือค้นหาตามรหัสวิชา หรือคำอธิบายรายวิชา
<br><input name=codes><input type=submit><br>
</form>
<?
$d{'ACCT 100'}="การบัญชีทั่วไป~3(3-0)~~ศึกษา...";
$d{'ACCT 201'}="หลักการบัญชี 1~3(3-0)~~ศึกษาเกี่ยว...";
$d{'ACCT 202'}="หลักการบัญชี 2~3(3-0)~หลักการบัญชี 1 (ACCT 201)~ศึกษา...";
if (isset($_GET['codes'])) { $c = $_GET['codes']; }
if (isset($_POST['codes'])) { $c = $_POST['codes']; }
if (strlen($c) == 0) { $c = "list"; }
if (strlen($d{$c}) > 1) {
$ds = explode("~",$d{$c});
echo "<b>$c</b> : $ds[0] $ds[1]";
echo "<ul><b>วิชาบังคับก่อน</b> : $ds[2]";
echo "<dd>$ds[3]</ul>";
} else {
if ($c == "csv") {
echo "<pre>";
while( list ($k,$v) = each($d)) {
$ds = explode("~",$d{$k});
echo "$k,$ds[0],$ds[1],$ds[2],$ds[3]<br>";
}
echo "</pre>";
} else {
echo "<ul><ol>";
while( list ($k,$v) = each($d)) {
if ((strpos(strtolower($d{$k}),strtolower($c)) > 0) || _
(strlen($c) == 0) || ($c == "list")) {
$ds = explode("~",$d{$k});
echo "<li><a href='?codes=$k'>$k</a> : $ds[0] $ds[1]";
}
}
echo "</ol></ul>";
}
}
// Code เพิ่มเติมเกี่ยวกับอาร์เรย์
// $arr = array("thai", "siam", "lampang");
// sort($arr);
// reset($arr);
// while (list($key, $value) = each($arr)) {
// echo "Key: $key; Value: $value<br>";
// }
// foreach ($arr as $key => $value) {
// echo "Key: $key; Value: $value<br>";
// }
?>
</body></html>
|
|
ต.ย.
5 |
:: Security by word in image putting
|
ตัวอย่าง : http://www.thaiall.com/php/secure.php
<body>
<?
$ft = $_POST['keept'] % 5;
if (($_POST['u'] == "a" && $_POST['p'] == "b") && (
($ft == "0" && $_POST['w'] == "abc") ||
($ft == "1" && $_POST['w'] == "def") ||
($ft == "2" && $_POST['w'] == "oho") ||
($ft == "3" && $_POST['w'] == "love") ||
($ft == "4" && $_POST['w'] == "wow") ))
{ echo "ok : pass"; } else {
$t = microtime() * 1000000;
$img = $t % 5;
echo "<img src=secure". $img .".jpg>";
?>
<form action=secure.php method=post>
Word in picture : <input name=w><br>
User : <input name=u value="a"><br>
Password : <input name=p value="b"><br>
<input type=hidden name=keept value=<?=$t;?>><br>
<input type=submit value="Check password">
</form>
<? } ?>
</body>
|
|
ต.ย.
6 |
:: 2 connection method of PHP+MDB in Windows
|
Source Code : (empl.mdb 68 KB = empl :emplid as double,emplname as text,emplsalary as double)
<body>Connection method of PHP+MDB in Windows<br>
- <a href=?connect=DSNLess&action=List>DSNLess+List</a> |
<a href=?connect=DSNLess&action=Add1>DSNLess+Add1</a> |
<a href=?connect=DSNLess&action=Delete99>DSNLess+Delete99</a><br>
- <a href=?connect=OdbcDSN&action=List>OdbcDNS+List</a> |
<a href=?connect=OdbcDSN&action=Add1>OdbcDNS+Add1</a> |
<a href=?connect=OdbcDSN&action=Delete99>OdbcDNS+Delete99</a><hr>
<?
if(!isset($_GET{'action'})) {
$_GET["connect"] = "DSNLess";
$_GET["action"] = "List";
} else {
$_GET["connect"] = $_GET{'connect'};
$_GET["action"] = $_GET{'action'};
}
// DNSLess connection method
if($_GET["connect"] == "DSNLess" ) {
// วิธีนี้ไม่ต้องเข้าไปใน ODBC Data Sources
$db_connection = new COM("ADODB.Connection");
$db_connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".realpath("empl.mdb").";";
$db_connection->open($db_connstr);
if ($_GET["action"] == "List") {
$rs = $db_connection->execute("select * from empl");
$rs_fld0 = $rs->Fields(0);
$rs_fld1 = $rs->Fields(1);
while (!$rs->EOF) {
print "$rs_fld0->value $rs_fld1->value <br>\n";
$rs->MoveNext();
}
$rs->Close();
}
if ($_GET["action"] == "Add1") {
$rs = $db_connection->execute("insert into empl(emplid,emplname)values(99,'abc')");
print "Add1 : complete";
}
if ($_GET["action"] == "Delete99") {
$rs = $db_connection->execute("delete from empl where emplid =99");
print "Delete99 : complete (all where emplid=99)";
}
$db_connection->Close();
}
// OdbcDNS connection method
// (Open DataBase connectivity & Data source name)
// ต้องมี ODBC driver ในเครื่องนะครับ ปกติเครื่องที่ลง office น่าจะมี
// Control panel, ODBC Data Sources, System DSN, Add, Access, empldsn, select, ...
if($_GET["connect"] == "OdbcDSN" ) {
$cnx = odbc_connect('empldsn','','');
if ($_GET["action"] == "List") {
$SQL_Exec_String = "select * from empl";
$cur= odbc_exec( $cnx, $SQL_Exec_String );
while( odbc_fetch_row( $cur ) ) {
$field1= odbc_result( $cur, 1 );
$field2= odbc_result( $cur, 2 );
echo "$field1 $field2 <br>\n";
}
}
if ($_GET["action"] == "Add1") {
$SQL_Exec_String = "insert into empl(emplid,emplname)values(99,'abc')";
$cur= odbc_exec( $cnx, $SQL_Exec_String );
print "Add1 : complete";
}
if ($_GET["action"] == "Delete99") {
$SQL_Exec_String = "delete from empl where emplid =99";
$cur= odbc_exec( $cnx, $SQL_Exec_String );
print "Delete99 : complete (all where emplid=99)";
}
}
?>
เพราะนักศึกษาคนหนึ่งที่ผมเคยสอนคอมพิวเตอร์เบื้องต้น ถามเรื่องนี้
ทำให้ผมต้องศึกษาเพิ่มเติม แล้วนำมาเขียนไว้ที่นี่ เพราะเดิมผมไม่สนใจเรื่อง php+mdb
|
|
ต.ย.
7 |
:: Open File From Internet (ดูดเว็บอื่นมาใช้งานเป็นเว็บเพจของเรา)
:: บาง Server ไม่ยอมให้ใช้ file() ดูดข้อมูลจากเว็บเพจนอกเครื่อง (Using remote files) เช่น thaiall.com
เพราะใน php.in กำหนด allow_url_fopen เป็น off ถ้าเป็น on ก็จะไม่พบปัญหานี้ สามารถตรวจสอบด้วย phpinfo()
|
<base href=http://www.youtube.com/>
<?
$ar = file("http://www.youtube.com");
foreach ($ar as $value) {
echo $value;
}
?>
ตัวอย่างนี้แสดงการดูดเว็บ http://www.youtube.com
มาแสดงเป็นเว็บของเรา ถ้าจะ split หรือนับ line ก็ต้องเขียนโปรแกรมเพิ่ม เช่น $lines = split("\n", $multi-line-input);
|
|
ต.ย.
8 |
:: ดูดบางส่วนของเว็บ โดยเลือกจาก keyword มาเท่าจำนวนบรรทัดที่ต้องการ
|
Commnet : manager.co.th มี hit rate เยอะเกินไป Response Time ต่ำ ไม่เหมาะที่จะดูด
<?
$x = '<table cellspacing=0 cellpadding=2 width="100%" border=0>';
$a = file("http://www.manager.co.th/Home/default.html");
$xl = strlen($x);
$found = 0;
$l = 0;
echo "คำที่ค้นหามีขนาด $xl ตัวอักษร\n";
for($i=0;$i<count($a);$i++) {
if (stristr($a[$i],$x)) {
$found = 1;
}
if ($l <= 26 && $found == 1) {
echo $a[$i]."\n";
$l = $l + 1;
}
}
?>
ตัวอย่างนี้แสดงการดูดเว็บ http://www.manager.co.th เพียงบางส่วน
โปรแกรมนี้ใช้กับบาง server ไม่ได้ เพราะเขาไม่ยอมให้ใช้ฟังก์ชัน file() เช่น thcity.com เป็นต้น
|
|
ต.ย.
9 |
:: ดูด Directory และเปลี่ยน Link ของ Google.com
|
9.1 ดูด Directory ของ google (ปรับปรุง 2552-08-24)
ตัวอย่าง : http://www.thaiall.com/php/load_phpbb.php
ตัวอย่าง : http://www.thaiall.com/php/google.php
<?
$web = file("http://www.google.co.th/dirhp?hl=th&tab=gd&q=");
$chk1 = '<table align=center border=0 cellpadding=0 cellspacing=7 width=1%>';
$chk2 = "</table>";
$found = 0;
$first = 1;
$l = 0;
if (!isset($_GET['url'])) {
echo '<meta http-equiv="content-type" content="text/html; charset=UTF-8">';
echo "<body bgcolor=#ffffdd><b>My Directory</b>\n";
for($i=0;$i<count($web);$i++) {
if ($found == 0) {
$r = split($chk1,$web[$i]);
if (count($r) > 1) {
$found = 1;
echo $chk1; # พิมพ์คำที่ค้นหาเป็นคำแรก
}
} else {
$r = split($chk2,$web[$i]);
if (count($r) > 1) $found = 2;
$u = $web[$i];
echo str_replace("/Top/World/Thai/","?url=",$u);
}
if ($found == 2) break;
} # end for
} else {
echo "<frameset><frame src=http://www.google.co.th/Top/World/Thai/" .
urlencode($_GET['url']) . "></frameset>";
} # end if
?>
9.2 ดูดจาก lovelampang.com มาไว้ใน thaiall.com
<?
$a = file("http://www.lovelampang.com/iblog.php");
for($i=0;$i<count($a);$i++) {
echo str_replace("<body","<base href=http://www.lovelampang.com/><body",$a[$i]);
echo "\n";
}
?>
9.3 ดูด url ของ mp3 จากเว็บไซต์ของ encarta
ตัวอย่าง : http://www.thaiall.com/listen/_cut.php
<font size=6><b>โปรแกรมช่วยจับชื่อแฟ้มเสียงจากผลการสืบค้น
<br>http://encarta.msn.com</b></font>
<form action=_cut.php method=post>
<input name=url size=90 value='http://encarta.msn.com/dictionary_1861582869/a.html'>
<input type=submit>
</form><br>
<?
if (isset($_POST['url'])) {
$chk1 = "http://images.encarta.msn.com";
$chk2 = ".mp3";
$r = file($_POST['url']);
$found = 0;
for($i=0;$i<count($r);$i++) {
$r1 = split($chk1,$r[$i]);
if (count($r1) > 1) {
$found = 1;
$r2 = split($chk2,$r1[1]);
$r3 = $r2[0];
}
}
echo "<a href=".$chk1.$r3.$chk2.">mp3</a>";
}
?>
9.4 ดูดเว็บเพจของ ไอทีในชีวิตประจำวัน
ตัวอย่าง : http://www.thaiall.com/itinlife/article.php
ปรับปรุงมาจากโปรแกรมดูดเว็บที่ใช้กับ google.com จึงทำให้ดูเข้าใจง่ายขึ้น
<table width=760 align=center><td bgcolor=#ffffdd>
<?
$web = file("http://www.thaiall.com/opinion/readonly.php?view=".$id);
$chk1 = "<td bgcolor=white>";
$chk2 = "</td></tr><tr><td align=right bgcolor=black>";
$found = 0;
$first = 1;
$stop = 0;
$l = 0;
for($i=0;$i<count($web);$i++) {
$r1 = split($chk1,$web[$i]);
$r2 = split($chk2,$web[$i]);
if (count($r1) > 1) $found = 1;
if ($found == 1 && $stop == 0) {
if ($first == 1) {
echo "<dd>$r1[1]"; // พิมพ์ครั้งแรก เมื่อพบคำแรก
$first = 0;
} else {
if (count($r2) > 1) $stop = 1;
echo "<dd>$r2[0]"; // พิมพ์ที่เหลือ ก่อน $stop = 1
}
}
}
?>
</td></table>
9.5 ดูดเว็บเพจของ phpbb
ตัวอย่าง : http://www.thaiall.com/php/load_phpbb.php
<? // load_phpbb.php
$web = file("http://www.yonok.ac.th/webboard/viewforum.php?f=14");
$base = "http://www.yonok.ac.th/webboard/";
$startpoint = '<ul class="topiclist">';
$stoppoint = '<form method="post" action="./';
$checkline = 'topictitle';
$startlink = '<a href=';
$sign = '+ ';
$found = 0;
echo '<meta http-equiv="content-type" content="text/html; charset=UTF-8">';
echo "<base href='$base'>";
echo "<body>\n";
for($i=0;$i<count($web);$i++) {
if ($found == 0) {
$r = split($startpoint,$web[$i]);
if (count($r) > 1) $found = 1;
} else {
$r = split($stoppoint,$web[$i]);
if (count($r) > 1) break;
$r = split($checkline,$web[$i]);
if (count($r) > 1) {
$r = split($startlink,$web[$i]);
echo $sign . $startlink . remove_tag($r[1]) ."<br />";
}
}
}
function remove_tag($txt) {
$txt = str_replace('class="topictitle"','target="_blank"',$txt);
return $txt;
}
?>
|
|
ต.ย.
10 |
:: โปรแกรม upload แฟ้มข้อมูลเข้า server อย่างง่าย 3 แบบ
|
<! up.php โปรแกรม upload แฟ้มข้อมูลเข้าไปในเครื่องบริการ>
<form action=up.php enctype="multipart/form-data" method=post>
<input type=file name=uploadfile>
<input type=submit>
</form>
<?
if (isset($_FILES["uploadfile"]["name"])) {
if(copy($_FILES["uploadfile"]["tmp_name"],"./".$_FILES["uploadfile"]["name"]))
echo "upload : process";
else
echo "upload : error";
}
?>
<! upmany.php สัจจามาถามว่า ทำอย่างไร up หลายแฟ้ม ถ้ารับคำสั่งมาจากอาร์เรย์>
<form action=upmany.php method=post enctype="multipart/form-data">
<input name=x value='a'><br>
<?
$tot = 3;
for($i=1;$i<=$tot;$i++) { echo "<input type=file name=uploadfile$i><br>"; }
?>
<input type=submit>
</form>
<?
if (!empty($_FILES["uploadfile1"]["name"])) {
echo $_POST{'x'}."<br>";
for($i=1;$i<=$tot;$i++) {
echo "<br>Upload : " . $_FILES["uploadfile$i"]["name"];
if(copy($_FILES["uploadfile$i"]["tmp_name"],"./".$_FILES["uploadfile$i"]["name"]))
echo " ok";
else
echo " error";
}
}
?>
<! upn.php ส่งแฟ้มเข้าแบบกำหนดชื่อ>
<form action=upn.php enctype="multipart/form-data" method=post>
<input name=new value="new.jpg">
<input type=file name=uploadfile>
<input type=submit>
</form>
<?
if (isset($_POST["new"]))
if (copy($_FILES["uploadfile"]["tmp_name"],"./".$_POST["new"]))
echo "upload : completely";
?>
<! uploadbanner.php ส่งแฟ้มเข้าแบบกำหนดชื่อตายตัว และกำหนด redirect>
<?
if (isset($_FILES["uploadfile"]) && $_POST["pass"] == "thailand") {
if (copy($_FILES["uploadfile"]["tmp_name"],"./banner.jpg"))
header("Location: http://www.thaiabc.com");
else echo "upload : fail<br/><a href=uploadbanner.php>back</a>";
} else { ?>
<form action="uploadbanner.php" enctype="multipart/form-data" method="post">
Password : <input name="pass">
<br/>File in jpg format : <input type="file" name="uploadfile">
<input type="submit"></form>
<? } ?>
|
|
ต.ย.
11 |
:: โปรแกรม 3 โปรแกรม แสดงการทำงานของ cookie
|
<! x.php โปรแกรมที่มีฟอร์มรับค่าเข้าตัวแปร uname แล้วส่งให้ y.php แบบ get>
<body>
<form action=y.php method=get>
<input name=uname size=40><br>
<input type=submit>
</form>
</body>
<! y.php โปรแกรมนำค่าที่รับมาจาก get เก็บลง cookie ไว้ 1 ชั่วโมง>
<! keep in c:\windows\temporary internet files\ >
<?
if (isset($_GET["uname"])) {
setcookie("uname",$_GET['uname'],time() + 3600);
echo "keep ok";
}
?>
<body>
<a href=z.php>z.php</a>
</body>
<! z.php โปรแกรมนำค่าจาก cookie มาแสดงทางจอภาพ>
<body>
<?=$_COOKIE['uname']; ?>
</body>
|
|
ต.ย.
12 |
:: โปรแกรม counter อย่างง่าย ด้วย session
:: เป็นการนับแยก ของผู้เข้าชมแต่ละคน เพราะผมเข้าคนละเครื่อง ก็นับกันคนละเลข ไม่ได้นับต่อของคนอื่น ๆ
:: หากไม่กำหนดอะไรเพิ่มเติมค่าของ session จะหมดอายุตามค่า session.cache_expire ที่แสดงใน phpinfo( )
:: พบ server 2 ตัวที่ต้องกำหนด session_save_path ไม่งั้น error คือ hypermart.net กับ sahapat.co.th
:: ตัวอย่างมากมายเรื่อง authentication ที่ http://www.tutorialized.com/tutorials/PHP/User-Authentication/1
|
ตัวอย่าง : ! http://www.yonok.ac.th/burin/countersession.php
<body>
<?
# http://th2.php.net/manual/en/ref.session.php
# http://th2.php.net/manual/en/function.session-cache-expire.php
# session_start() ต้องมีในทุกเว็บเพจที่ต้องการใช้ตัวแปรแบบ session
# session_save_path("/var/www/cgi-bin/tmp"); สร้างห้อง tmp ไว้เก็บ session สำหรับ Linux
# session_save_path("f:/203.130.156/sahapat/tmp"); ตัวอย่างสำหรับ windows
session_start();
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 1;
} else {
$_SESSION['count']++;
}
# for delete the session variable
# session_unregister('count');
?>
<br>
Hello visitor, you have seen this page <?=$_SESSION['count']; ?> times.
</body>
:: เพราะผมเคยใช้ session ใน hypermart.net ไม่ได้ และต.ค.48 อ.ถนอมก็บ่นว่า server เขาไม่รับ
:: พอสืบค้นก็พบข้อมูลจาก http://www.hypermart.net/knowledgebase/read_article.bml?kbid=600
:: ทำให้รู้ว่าบาง server ต้องกำหนดห้องเก็บ session เอง เพื่อ Security
:: ถ้าใช้ session ไม่ได้ ก็ให้กำหนด session_save_path ตาม $_ENV["DOCUMENT_ROOT"]
:: เช่น session_save_path("/home/users/web/[bucket]/[home dir]/cgi-bin/tmp"); ก่อน session_start();
|
|
ต.ย.
13 |
:: โปรแกรมจัดตารางสอบอย่างง่าย (นักเรียนลงทะเบียนคนละ 3 วิชา แต่หลังจัดตารางสอบจะมีชั่วโมงสอบ 3 Hrs คือ ac, be, d)
:: อาจารย์หญิงท่านหนึ่งที่ผมรู้จักใช้ theory การจัดตารางสอบที่มีการทำ generation พร้อมกับ constrain อีกมากมาย
:: ผมลองเขียนดู แต่เอาแบบง่าย ๆ ไม่มีเงื่อนไข จัดให้ลง block ที่เตรียมไว้ ก็ถือว่าใช้ได้แล้ว
|
Source Code : http://www.thaiall.com/php/timetabling.php
<?
if (!isset($_POST['regist'])) {
echo "ระบบจัดตารางสอบอย่างง่าย ของนักเรียน 3 คนที่ลงทะเบียนคนละ 3 วิชา";
echo "<form action=timetabling.php method=post>";
echo "<textarea name=regist rows=10 cols=60>
1,a,b,d,
2,a,d,e,
3,b,c,d,
</textarea><br><input type=submit value='Timetabling'>";
echo "</form>";
exit;
}
// แสดงข้อมูลที่รับมาจาก form
echo "<pre>แสดงรายวิชาที่นักเรียนแต่ละคนลงทะเบียนเรียน \n";
$student = split("\n",$_POST['regist']);
foreach($student as $one) {
$subj = split(",",$one);
for($i=0;$i<count($subj);$i++) echo $subj[$i];
}
// นำข้อมูลแต่ละคน มาแยกเก็บแยกวิชา เช่น a,1,2 ลงตัวแปร $s เพื่อใช้ในการจัดตารางสอบ
foreach($student as $one) {
$subj = split(",",$one);
for($i=1;$i<count($subj)-1;$i++) {
if (!isset($s[$subj[$i]])) $s[$subj[$i]] = $subj[$i] . ",";
$s[$subj[$i]] = $s[$subj[$i]] . $subj[0] . ",";
}
}
// อ่าน $s มาจัดลงตัวแปร $sub เพื่อใช้อ้างวิชาที่ได้ เช่น $sub[0] หมายถึงวิชา "a"
echo "<hr>แสดงชื่อนักเรียนที่ลงทะเบียนในแต่ละวิชา";
$i = 0;
foreach($s as $sepsubj) {
$sepagain = split(",",$sepsubj);
$sub[$i] = $sepagain[0];
$i = $i + 1;
echo $sepsubj . "\n"; // $sepsubj เก็บรหัสนักศึกษาในแต่ละวิชา
}
// จัดกลุ่มตามวัน โดยใช้ while ซ้อน for และตรวจสอบความซ้ำซ้อน
$end = 0;
$i = 0;
while ($end == 0) {
$outday = 0;
for($j=0;$j<count($sub);$j++) {
if (strlen($s[$sub[$j]]) > 2 && $outday == 0) {
$day[$i] = $sub[$j].",";
$base = $s[$sub[$j]];
$s[$sub[$j]] = "";
$outday = 1;
}
}
for($j=1;$j<count($sub);$j++) {
$sbase = $s[$sub[$j]];
$ssubj = split(",",$sbase);
$found = 0;
for($k=1;$k<count($ssubj)-1;$k++) {
if (stristr($base,$ssubj[$k])) $found = 1;
}
if ($found == 0 && count($ssubj) > 1) {
$s[$sub[$j]] = "";
$day[$i] = $day[$i] . $sub[$j] . ",";
}
}
$i++;
$end = 1;
foreach ($s as $checksubj) {
if (strlen($checksubj) > 2 ) $end = 0;
}
}
echo "<hr>";
// แสดงผลการจัดตารางแล้ว
for($i=0;$i<count($day);$i++) {
echo "ชั่วโมงที่ ";
echo $i + 1;
echo " สอบวิชา " . $day[$i] . "\n";
}
?>
|
|
ต.ย.
14 |
:: วาดกราฟอย่างง่าย จากข้อมูลผ่าน querystring หรือ get
:: ศูนย์ข้อมูลจังหวัด ต้องการเขียนกราฟใน webpage ผมจึงเขียนโปรแกรมง่าย ๆ ขึ้นมาให้นำไปปรับปรุง
|
Source Code : http://www.thaiall.com/php/barchart.php?b1=50&b2=100&b3=120&b4=30
14.1 เขียน barchart.php (ปรับปรุง : 5 กรกฎาคม 2548 เพราะเดิมลืมเครื่องหมาย $)
<?
if (!isset($_GET{'b1'})) {
$sample = "barchart.php?b1=50&b2=100&b3=120&b4=30";
echo "<a href=$sample>$sample</a>";
echo "<br>or <iframe src=$sample height=200 width=200></iframe>";
echo "<br>or <img src=$sample>";
echo "<br>Can test at http://www.yonok.ac.th/burin/php/$sample";
} else {
header("Content-type: image/png");
$width = 200;
$height = 150;
$bw = 20; // barwidth
$im = @imagecreate ($width,$height);
$white = ImageColorAllocate($im, 255, 255, 255);
$red = ImageColorAllocate($im, 255, 0, 0);
$yellow = ImageColorAllocate($im, 255, 255, 0);
$black = ImageColorAllocate($im, 0, 0, 0);
imagefill($im, 0, 0, $red);
imagefilledrectangle($im, 5, 5, $width - 5, $height - 5, $black);
imageline($im, 5, $height - 3, $width - 5, $height - 3, $yellow);
imagestring ($im, 4, 5, 5, "only in english", $white);
for ($i=1;$i<=10;$i++) {
if (isset($_GET{"b".$i})) {
imagerectangle($im,$bw * $i,$height - $_GET{"b".$i},$bw * $i + 8,$height - 20,$white);
imagestring ($im, 0, $bw * $i, $height - 18, $_GET{"b".$i}, $yellow);
}
}
imagepng ($im);
imagedestroy($im);
}
?>
14.2 ทดสอบเขียนภาพอีกแบบหนึ่ง
<?
header("Content-type: image/png");
if (!isset($_GET{"string"})) $string = "?string=none"; else $string = $_GET{"string"};
$font = 4;
$width = 200;
$height = 150;
$im = @imagecreate ($width,$height);
//white background
$background_color = imagecolorallocate($im, 255, 255, 255);
//black text
$text_color = imagecolorallocate ($im, 0, 0, 0);
$white = ImageColorAllocate($im, 255, 255, 255);
$red = ImageColorAllocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);
imagestring ($im, $font, 0, 0, $string, $text_color);
imageinterlace($im, 1);
imagearc($im, 40, 30, 20, 10, 0, 359, $white);
imageline($im, 5, 5, 70, 60, $white);
imagepng ($im);
imagedestroy($im);
?>
14.3 ทดสอบเรื่องใช้ php อ่านแฟ้ม .gif มาแสดง
<?
header("Content-Type: image/gif");
$fn=fopen("ta5.gif","r");
fpassthru($fn);
?>
14.4 อ่านแฟ้มภาพภาษาไทยใน linux เพราะใช้ชื่อแฟ้มภาษาไทยตรง ๆ ไม่ได้
<?
// http://www.thaiall.com/lampangmap/img.php?f=ลำปาง1
$f = "ta6.jpg";
if(isset($_GET["f"]) && file_exists($_GET["f"].".jpg")) { $f = $_GET["f"].".jpg"; }
if($fn=fopen($f,"rb")) {
if(filesize($f) < 200000) {
header("Content-Type: image/png");
header("Content-Length: " . filesize($f));
while(!feof($fn)){
print(fread($fn, 1024));
flush();
}
fclose($fn);
} else echo "over limit of file size";
}
?>
14.5 สำหรับเปิดแฟ้ม .pdf ที่มีชื่อไทยใน fedora เพื่อแก้ปัญหาการมีชื่อแฟ้มเป็นภาษาไทย
<?
if(!isset($_GET["file"])) {
$f = "ทดสอบ.pdf";
echo "<a href=openpdf.php?file=". urlencode($f) . " target=_blank>$f</a>";
echo "<form action=openpdf.php method=get target=_blank>
<input name=file size=60 value=$f><br><input type=submit></form>";
exit;
}
$filename = $_GET["file"];
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="foo.pdf"');
readfile($filename);
?>
14.6 ซ้อนภาพแบบ Transparent
<?
$dest = imagecreatefromgif('d.gif');
$src = imagecreatefromgif('s.gif');
$bg_color = imagecolorat($src, 1,1);
imagecolortransparent($src, $bg_color);
imagecopymerge($dest, $src, 50, 80, 0, 0, 100, 200, 300);
header('Content-Type: image/gif');
imagegif($dest);
imagedestroy($dest);
imagedestroy($src);
?>
14.7 การแสดง icon เป็นผลจากการตรวจสอบแฟ้ม
ใช้งานที่ : http://www.thaiall.com/me/lyric.htm
<?
header("Content-Type: image/png");
if (isset($_GET["name"]) && file_exists($_GET["name"] . ".mid"))
$fn=fopen("1.png","r");
else
$fn=fopen("0.png","r");
fpassthru($fn);
?>
|
|
<?
// $msconnect = mssql_connect("172.16.20.81:1433","sa","");
$msconnect = mssql_connect("MyServer70","sa","");
$msdb=mssql_select_db("Northwind",$msconnect);
$msquery = "select firstname,lastname from employees";
$msresults= mssql_query($msquery);
echo "<ol>";
while ($row = mssql_fetch_array($msresults)) {
echo "<li>" . $row['firstname'] . " " . $row['lastname'] . "\n";
}
echo "</ol>";
?>
|
|
ต.ย.
16 |
:: Online User Counter (no mysql)
:: โปรแกรมนับผู้ใช้ที่กำลัง online อยู่ แบบใช้ mysql มีมากมาย แต่ของผมใช้ text file ทดสอบแล้วใน thaiabc3e.exe
|
ขณะนี้ online : <?
$gap = 60; // 60 seconds
$t = $_SERVER["REMOTE_ADDR"].",".time()."\n";
$f = "countuser.txt";
$c = 0;
$new = 1; // ตั้งไว้ก่อนว่าเป็นคนใหม่
if (file_exists($f)) {
$fr=file($f);
$fw=fopen ($f,"w");
foreach ($fr as $value) {
$ft = split(",",$value);
if ($ft[0] == $_SERVER["REMOTE_ADDR"]) {
fputs ($fw,$_SERVER["REMOTE_ADDR"].",".time()."\n");
$c = $c + 1;
$new = 0;
} else {
if ((time() - $gap) < $ft[1]) {
fputs ($fw,$value);
$c = $c + 1;
}
}
}
if ($new == 1) {
fputs ($fw,$t);
$c = $c + 1;
}
echo $c;
fclose ($fw);
} else {
$fw=fopen ($f,"w");
fputs ($fw,$t);
fclose ($fw);
echo "1";
}
?> คน
|
|
ต.ย.
17 |
:: สุ่มเลขไม่ซ้ำ แบบใช้ in_array
:: วิธีสุ่มเลขไม่ซ้ำให้ได้เลข 10 ตัวคือ 0 - 9
:: ถ้าไม่ใช้ in_array จะมี loop อีกตัวหนึ่ง สำหรับเช็คซ้ำ .. ซึ่งเป็นวิธีที่ผมใช้ตามปกติ
|
<?
srand(time());
$num = 10;
$a = array();
while (count($a) < $num) {
$n = rand() % $num;
if (!in_array($n, $a)) array_push($a,$n);
}
for ($i=0;$i<$num;$i++) echo $a[$i]."<br>";
?>
|
|
ต.ย.
18 |
:: Bad Word Blockinging (หาคำที่ไม่สุภาพ แล้วเปลี่ยน)
|
<body>
<form action=bad.php method=post>
<textarea name=word rows=5 cols=50>
แดงบอย น้อย ขาวดำ ก็มี
ดาว ดำ ดีดี สุภาพดำนะไม่ดี
</textarea><input type=submit></form>
<?
$bi=-1;
$bi++; $bad[$bi]="ทอง";
$bi++; $bad[$bi]="ขาว";
$bi++; $bad[$bi]="ดำ";
for($b=0;$b<=$bi;$b++)
$_POST["word"] = str_replace($bad[$b],"..",$_POST["word"]);
echo $_POST["word"];
?>
</body> |
|
ต.ย.
19 |
:: Redirection Header (จาก www.yonok.ac.th)
|
<?
if (isset($_GET['codes']))
header("Location: http://yn1.yonok.ac.th/catalog/subjdesc.php?codes=" . $_GET['codes']);
else
header("Location: http://yn1.yonok.ac.th/catalog/subjdesc.php");
?> |
|
ต.ย.
20 |
:: Encode and Decode
:: เข้ารหัส URL แก้ปัญหา Internal Server Error ในบางกรณีได้
|
<pre>
<?
if (!isset($_POST["ch"])) $a = "<a title=test>ทดสอบ/aaa</a> // \\ // \\";
else $a = $_POST["ch"];
// Normal Output
echo $a."\n";
# Output: ทดสอบ/aaa // \ // \
// Un-quote string quoted with addslashes()
echo stripslashes($a)."\n";
# Output: ทดสอบ/aaa // //
// Quote string with slashes
echo addslashes($a)."\n";
# Output: ทดสอบ/aaa // \\ // \\
// URL-encodes string
echo urlencode($a)."\n";
# Output: %3Ca+title%3Dtest%3E%B7%B4%CA%CD%BA%2Faaa%3C%2Fa%3E+%2F%2F+%5C+%2F%2F+%5C
// Decodes URL-encoded string
echo urldecode(urlencode($a))."\n";
# Output: ทดสอบ/aaa // \ // \
// Convert special characters to HTML entities
echo htmlspecialchars($a)."\n";
# Output: <a title=test>ทดสอบ/aaa</a> // \ // \
// Convert all applicable characters to HTML entities
echo htmlentities($a)."\n";
# Output: <a title=test>?????/aaa</a> // \ // \
// Encodes data with MIME base64
echo base64_encode($a)."\n";
# Output: PGEgdGl0bGU9dGVzdD63tMrNui9hYWE8L2E+IC8vIFwgLy8gXA==
// Decodes data encoded with MIME base64
echo base64_decode(base64_encode($a))."\n";
# Output: ทดสอบ/aaa // \ // \
// One-way string encryption (hashing) (ผลไม่ซ้ำกัน)
echo crypt($a)."\n";
# Output: $1$RL..GJ..$HzbDnURKr6iBOL1txhwk2/
# EX. if (crypt($user_input, $passwd) == $passwd) echo "OK";
# EX. if (crypt($_GET["p"],"$1$01..Hv/") == "$1$01..Hv/") { }
?>
<form action="" method=post><input name=ch><input type=submit></form>
</pre>
โปรแกรมแปลงภาษาไทยเป็นตัวเลข
<?
if (isset($_REQUEST["t"])) {
$txt = $_REQUEST["t"];
for($i = 0;$i<strlen($txt);$i++) {echo sprintf("%03d",ord(substr($txt,$i,1)));}
}
?>
<form action="">แปลงภาษาไทยเป็นรหัส ascii 3 หลัก
<input name=t value="<?
if (isset($_REQUEST["t"])) echo $_REQUEST["t"]; else echo "กขค";
?>"> <input type=submit value=convert>
</form>
โปรแกรมแปลงตัวเลข Ascii กลับเป็นภาษาไทย
$str = "161162163";
$countletter = strlen($str); // กขค
$countword = $countletter / 3;
for ($i = 0;$i < $countword;$i++) {
$pt = ($i * 3);
$getascii=(substr($str,$pt,1) *100)+(substr($str,$pt +1,1) *10)+(substr($str,$pt +2,1));
echo chr($getascii);
}
|
|
ต.ย.
21 |
:: Each _SESSION, _SERVER, _ENV
:: แสดงข้อมูลทั้งหมดในตัวแปร Session หรือตัวแปร Server
|
<?
# ใช้ session_save_path ในกรณีที่ server บังคับให้ใช้ เช่น hypermart.net
# session_save_path("/var/www/cgi-bin/tmp"); สร้างห้อง tmp ไว้เก็บ session เป็นต้น
session_start();
$_SESSION["a"] = 5;
foreach ($_SESSION as $k=>$v) {
echo $_SESSION["$k"];
}
foreach ($_SERVER as $k=>$v) {
echo $k . $_SERVER["$k"];
}
foreach ($_ENV as $k=>$v) echo $k." = ".$v."<br>";
phpinfo();
?>
Testing of ! http://www.yonok.ac.th/burin/boardx/session.php
<?
session_start();
if (isset($_SESSION["aaa"])) {
echo $_SESSION["aaa"] . "<br>";
if (isset($_GET["delete"])) {
session_unset();
session_destroy();
header("location: session.php");
}
}
if (isset($_GET["create"])) {
$_SESSION["aaa"] = "aaa";
header("location: session.php");
}
?>
<a href=?create=yes>?create=yes</a>
<a href=?delete=yes>?delete=yes</a>
|
|
ต.ย.
22 |
:: MySQL Manage (insert, delete, update, select)
:: ถ้าพบปัญหา ?? ต้องใช้ set names tis620 ทั้งตอน insert และ select
|
<?
$host = "localhost";
$db = "test";
$tb = "testtb";
$user = "root";
$password = "";
###########################
if (isset($_POST["action"])) {
if ($_POST["action"] == "insert") {
$query = "insert into $tb (id,name) values (". $_POST["id"] .",'". $_POST["name"] ."')";
}
if ($_POST["action"] == "delete") {
$query = "delete from $tb where id =". $_POST["id"];
}
if ($_POST["action"] == "update") {
$query = "update $tb set name='".$_POST["name"] ."' where id =". $_POST["id"];
}
$connect = mysql_connect("$host","$user","$password");
mysql_query("set names tis620"); // การเพิ่มบรรทัดนี้ ทำให้ข้อมูลใน mysql เก็บถูกต้อง
$result = mysql_db_query($db,$query);
if ($result) echo "<br>". $_POST["action"] ." OK<br>"; else exit;
mysql_close($connect);
}
###########################
$query = "select * from $tb";
$connect = mysql_connect("$host","$user","$password");
mysql_query("set names tis620"); // การเพิ่มบรรทัดนี้ ทำให้ดึงข้อมูลมาแสดงอย่างถูกต้อง
$result = mysql_db_query($db,$query);
if ($result) echo "<br>OK<br>"; else exit;
while ($object = mysql_fetch_object($result)) {
foreach ($object as $o) echo $o." ";
# echo $object->cust . " " . $object->custname;
echo "<br>";
}
echo "Total records : ".mysql_num_rows($result);
mysql_close($connect);
###########################
?>
<form action=? method=post>
<b>Insert</b><br>id : <input name=id><br>name : <input name=name><br>
<input type=submit value=insert name=action>
</form>
<form action=? method=post>
<b>Update</b><br>id : <input name=id><br>name : <input name=name><br>
<input type=submit value=update name=action>
</form>
<form action=? method=post>
<b>Delete</b><br>id : <input name=id><br>
<input type=submit value=delete name=action>
</form> |
|
ต.ย.
23 |
:: แก้ปัญหาภาษาไทยเป็น ??? เมื่ออ่านข้อมูลจาก MySQL
:: ทุกครั้งที่อ่านข้อมูล จึงต้องเพิ่ม mysql_query .. เพื่อกำหนดภาษาเป็น tis620 (ทราบจาก phpconcept.com)
:: คัดลอก SQL ใน Notepad ไปใส่ใน MySQL-Front เป็น ??? พอเปลี่ยนเป็น wordpad ไม่มีปัญหาเรื่อง ??? (w2003)
|
<?php
// Microsoft-IIS/8.5 php-5.6 mysql-5.1 phpmyadmin-4.0.10.20
// ! http://www.phpconcept.com/content/view/21/28/
$host = "localhost";
$db = "test";
$tb = "test";
$user = "root";
$password = "song:letitbe";
$query = "select * from $tb";
//
$connect = mysql_connect("$host","$user","$password");
// $charset = "set character_set_results=tis620";
$charset = "set names tis620";
mysql_query($charset) or die('Invalid query: ' . mysql_error());
//
$result = mysql_db_query($db,$query);
while ($object = mysql_fetch_object($result)) {
echo $object->test . "<br/>";
}
mysql_close($connect);
?>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<?php
$host = "localhost";
$db = "test";
$tb = "testutf8";
$user = "root";
$password = "song:letitbe";
$query = "select * from $tb";
###########################
$connect = mysql_connect("$host","$user","$password");
$charset = "set names utf8";
mysql_query($charset) or die('Invalid query: ' . mysql_error());
$result = mysql_db_query($db,$query);
while ($object = mysql_fetch_object($result)) {
echo $object->test . "<br/>";
}
mysql_close($connect);
?>
+ แก้ปัญหาภาษาไทย เมื่อพิมพ์ภาษาไทยใน phpmyadmin แล้วออกเป็น ???
- ให้ทำตอนเริ่มต้นสร้างตาราง หรือ backup ข้อมูลไว้ก่อน เพราะถ้ามีข้อมูลมาก ๆ อาจมีปัญหา
- เปลี่ยน การเรียงลำดับในแต่ละ field จาก latin1_swedish_ci เป็น tis620_thai_ci
- ใน php script ต้องเพิ่ม mysql_query("set names tis620"); ต่อจาก mysql_connect( .. );
- วิธีนี้ไม่ได้แก้ปัญหาภาษาไทยในข้อมูลเดิม แต่จะไม่มีปัญหากับข้อมูลใหม่ที่เพิ่ม หรือแก้ไข
|
|
ต.ย.
24 |
:: ตรวจ Link ในเว็บเพจที่ต้องการ
:: รุ่นนี้ยังไม่เช็ค link ปลายทาง เพียงแต่บอกว่า เว็บเพจนั้นมี link อะไรบ้าง
:: ลองทดสอบดูได้ ที่ linkchk1.php
|
<?
$url = "http://lampang.thcity.com/face/indexo.html";
if (isset($_POST["url"])) {
$url = strtolower($_POST["url"]);
$web = file($url);
echo "<ol>";
for($i=0;$i<count($web);$i++) {
$web[$i] = strtolower($web[$i]);
$found = 0;
$r1 = split("href=",$web[$i]);
if (count($r1) > 1) $found = 1;
if ($found == 1) {
$r2 = split('[ >]',$r1[1]);
$tag = $r2[0];
echo "<li>";
if (substr($r2[0],0,4) != "http")
echo "<font color=red>$tag</font>\n"; else echo $tag."\n";
}
}
echo "</ol>Total Line : ". count($web);
}
echo "<form action='' method=post><input name=url value='$url' size=60>
<input type=submit></form>";
?> |
|