5/30/2558

แก้ปัญหาการตัด และนับ คำภาษาไทยใน PHP ด้วย iconv_strlen และ iconv_substr


ในภาษา PHP  เราใช้ function substr() เพื่อการตัดคำใน string และ function strlen()  เพื่อการหาจำนวนตัวอักษรใน string แต่เมื่อลองใช้ function  นี้กับภาษาไทยจะพบว่ามีปัญหา เราสามารถใช้


  • function  iconv_strlen เพื่อนับจำนวนตัวอักษร เช่น 
          echo  iconv_strlen("สวัสดี","UTF-8");  ผลลัพธ์ที่ได้คือ 6
  • function iconv_substr เพื่อตัด string เช่น 
           echo   iconv_substr("สวัสดี",1,2,"UTF-8");

          ผลลัพธ์ที่ได้คือ  "วั" เพราะ เริ่มต้นตัดอักษรตัวที่ 1 ( อักษรตัวแรกคือ 'ส' นับเป็นตัวที่ 0  )

จำไว้ว่า หากเราต้องการนับตัวอักษรภาษาไทย  หรือ ตัดคำภาษาไทยโดยใช้ PHP ให้ใช้ function iconv_strlen และ function iconv_substr เพื่อไม่ให้เกิดปัญหา


5/04/2558

การสร้าง textbox ที่พิมพ์ได้แต่เฉพาะภาษาอังกฤษ

สำหรับ  text box ที่ให้กรอก username หรือ password หากเราต้องการไม่ให้กรอกตัวอักษรเป็นภาษาไทยได้เราสามารถใช้ jquery ลบตัวอักษรที่เป็นภาษาอังกฤษใน text box ได้ดังนี้

//ให้ใช้งาน jquery ได้
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>

//สร้าง text box ที่มี id เป็น username และกำหนดให้ทำงานที่ function eng_only() เมื่อมีการเปลี่ยนข้อความ
<input type="text"  id="username" onchange="eng_only()" value="" />

<script type="text/javascript">

function eng_only() {
      var temp=$("#username").val();//เก็บข้อความที่พิมพ์ใน text box 
   
      temp=temp.toLowerCase();//เปลี่ยนให้ทุกตัวอักษรเป็น ตัวพิมพ์เล็ก
      
//วน loop แต่ละตัวอักษร เพื่อดูว่าแต่ละตัวอักษรเป็นภาษาไทย หรือภาษาอังกฤษ
for(i=0;i<temp.length;i++)
{
     
 if ((temp[i]=="a")||(temp[i]=="b")||(temp[i]=="c")||(temp[i]=="d")||(temp[i]=="e")||(temp[i]=="f")||(temp[i]=="g")||(temp[i]=="h")||(temp[i]=="i")||(temp[i]=="j")||(temp[i]=="k")||(temp[i]=="l")||(temp[i]=="m")||(temp[i]=="n")||(temp[i]=="o")||(temp[i]=="p")||(temp[i]=="q")||(temp[i]=="r")||(temp[i]=="s")||(temp[i]=="t")||(temp[i]=="u")||(temp[i]=="v")||(temp[i]=="w")||(temp[i]=="x")||(temp[i]=="y")||(temp[i]=="z")||(temp[i]=="z")||(temp[i]=="0")||(temp[i]=="1")||(temp[i]=="2")||(temp[i]=="3")||(temp[i]=="4")||(temp[i]=="5")||(temp[i]=="6")||(temp[i]=="7")||(temp[i]=="8")||(temp[i]=="9")||(temp[i]=="!")||(temp[i]=="@")||(temp[i]=="#")||(temp[i]=="$")||(temp[i]=="%")||
(temp[i]=="^")||(temp[i]=="&")||(temp[i]=="*")||(temp[i]=="(")||(temp[i]==")")||(temp[i]=="_")||(temp[i]=="+")||(temp[i]=="-")||(temp[i]=="=")||(temp[i]=="{")||(temp[i]=="}")||(temp[i]=="[")||(temp[i]=="]")||(temp[i]=="|")||(temp[i]=="/")||(temp[i]=="\"")||(temp[i]=="'")||(temp[i]==":")||(temp[i]==";")||(temp[i]=="<")||(temp[i]==">"))
 {
      
 }
 else
 {
     $("#username").val($("#username").val().replace(temp[i],""));//ลบตัวอักษรที่ไม่ใช่ภาษาอังกฤษออก
 }

}

    }

</script>

4/28/2558

เรียง array ที่เป็น string ตามตัวเลข


หากเรามีชุดข้อมูลที่เป็น string เช่น

$arr=["1.jpg","10.jpg","2.jpg","24.jpg","4.jpg"];

การเลียงลำดับแบบ string จะเป็น

1.jpg
10.jpg
2.jpg
24.jpg
4.jpg

แต่มีหากความต้องการ sort ข้อมูลในแบบของตัวเลข  โดยใช้ PHP เราสามารถใช้ function  sort ของ PHP โดยกำหนดให้เป็นการเรียงลำดับตามตัวเลขได้ดังนี้


<?php
   
    $arr=["1.jpg","10.jpg","2.jpg","24.jpg","4.jpg"];//array ที่ต้องการเรียง
    sort($arr, SORT_NUMERIC);

    for($i=0;$i<count( $arr );$i++)
    {
          echo $arr[$i]."<br />";
    }

?>

ผลลัพธ์คือ
1.jpg
2.jpg
4.jpg
10.jpg
24.jpg

3/03/2558

หาระยะห่างระหว่างสองตำแหน่งละติจูดลองติจูด



สำหรับการทำ Location Based Application นั้นย่อมมี ตำแหน่งละติจูด ลองตจูดเข้ามาเกี่ยวข้อง ถ้าต้องการที่จะหาระยะห่างระหว่างสองตำแหน่งเราสามารถใช้ function ในการหาได้ดังนี้

//function หาระยะทางระหว่างสอง ละติจูด ลองติจูด
function get_distance(lat1,lon1,lat2,lon2) {
  var R = 6371;
  var dLat = (lat2-lat1)* (Math.PI/180);
  var dLon = (lon2-lon1)* (Math.PI/180);
  var a =
    Math.sin(dLat/2) * Math.sin(dLat/2) +
    Math.cos(lat1* (Math.PI/180)) * Math.cos(lat2* (Math.PI/180)) *
    Math.sin(dLon/2) * Math.sin(dLon/2)
    ;
  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
  var d = R * c; // ผลลัพธ์เป็น km
  return d;
}


//ตัวอย่างการเรียกใช้ function
var distince;
distince=get_distance(13.75672638963174,100.49458265304565,13.752474554298313,100.49338102340698);
document.write(distince);//ผลลัพธ์ 0.4902724239365899


1/17/2558

แปลงการเข้ารหัส tis-620 และ utf-8 และการตรวจสอบการเข้ารัหส


เชื่อว่า PHP programmer หลายคนคงเคยเจอปัญกาเรื่องการเข้ารหัสมาบ้าง เช่น อ่านข้อมูลจากฐานข้อมูลมาเป็น TIS-620 แต่หน้าเว็บต้องผลเป็น UTF-8 เราสามารถแปลงการเข้าหรัสข้อมูลได้ตามตัวอย่างดังนี้

if(mb_detect_encoding ( $data )=="TIS-620")
{
     $data=iconv ("TIS-620" , "UTF-8" , $data);
}

จากตัวอย่าง

function mb_detect_encoding คือ function ตรวจสอบว่าข้อมูลมีการเข้ารหัสแบบใดถ้ามีการเข้ารหัสแบบ TIS-620 จะเปลี่ยนเป็นการเข้ารหัสแบบ UTF-8 โดยใช้ function iconv

10/28/2557

การใช้คำสั่ง INNER JOIN ใน MySQL

หากเราต้องการหาข้อมูลจากตารางในฐานข้อมูล MySQL จากสองตารางโดยที่มี column ที่เป็น foreign key ( pimarkey ที่ไปอยู่ในอีกตาราง )  เป็นตัวเชื่อมระหว่างสองตาราง เราสามารถหาข้อมูลจากทั้งสองตารางพร้อมกันได้ในคำสั่งเดียวโดยใช้คำสั่ง INNER JOIN


จากทั้งสองตารางจะเห็นว่า Column Movie_type_id คือ column ที่ เชื่อมระหว่างสองตารางเข้าด้วยกัน และ จากตาราง Movie เรารู้ เพียงรหัส ประเภท แต่ไม่รู้ชื่อประเภทของมันถ้าเราต้องการรู้ชื่อประเภทด้วยสามารถสร้างคำสั่ง sql เพื่อหาชื่อประเภทได้ดังนี้

SELECT
                Movie.Movie_name AS name ,
                Movie_type.Movie_type_name AS type_name ,
                Movie.qty AS stock
FROM
               Movie INNER JOIN Movie_type ON Movie. Movie_type_id =Movie_type. Movie_type_id


ผลลัพธ์ที่ได้ คือ



จาก Movie INNER JOIN Movie_type ON Movie. Movie_type_id =Movie_type. Movie_type_id
คือ การสั่งให้แสดงตาราง Movie รวมกับ ตาราง Movie_type โดยที่จะนำ column Movie_type_name มาแสดงสำหรับแถวที่มี column Movie_type_id ของตาราง Movie_type ตรงกับ column Movie_type_id ของตาราง Movie จากคำสั่ง
( ON Movie. Movie_type_id =Movie_type. Movie_type_id )




9/30/2557

ขั้นตอนการ install phonegap

Phonegap คือ เครื่องมือในการพัฒนา cross path mobile application ( การพัฒนา Application ที่สามารถใช้งานได้ทุกระบบปฎิบัติการ )โดยใช้ HTML 5 เหมาะ สำหรับ Web Programmer ที่ต้องการพัฒนา Mobile Application แต่ไม่มีความรู้ภาษาที่ใช้เขียน Mobile Application เช่น objective-c หรือ java
ในบทความนี้จะอธิบายถึงขั้นตอนการลง phonegap และทดสอบ Application ที่เขียนขึ้น

1. ลง phonegap developer application จาก app store หรือ play store ลงในมือถือ หรือ tablet ก็ได้เพื่อใช้สำหรับทดสอบ Aplication ที่เขียนโดย phonegap



2. install node.js จาก www.nodejs.org


3. หลังจากลง node.js แล้วเราจะใช้ node.js ลง phonegap โดยเปิด command line แล้วพิมพ์คำสั่ง

     cd AppData
     cd Roaming
     npm install -g phonegap


4. เมื่อลง phonegap เสร็จแล้วให้ปิด comandline แล้วเปิดอีกครั้ง ครั้งนี้เราจะสร้าง folder สำหรับ project phonegap ชื่อว่า myApp ไว้ใน drive d
     
    d:
    phonegap create myApp


5. จะพบว่าใน drive d มี folder ชื่อว่า myApp อยู่ เมื่อเปิดเข้าไปดูจะมีไฟล์ index.html ซึ่งคือไฟล์ที่จะแสดงใน Application ให้เปิดไฟล์ขึ้นมาแก้ไขในบรรทัดที่ 34 เป็น <h2>www.projectsoft.biz</h2>



6. ใน command line ให้พิมพ์ cd myApp เพื่อเข้าไปใน folder project ของเรา และพิมพ์ phonegap serve หากมีหน้าจอ fire wall ขึ้นมาให้คลิก allow  ใน command line มี ip address ของและ port เพื่อให้ smart phone หรือ tablet ที่ลง application phonegap developer เอาไว้ เรียก


7. ใช้ smart phone หรือ tablet เปิด application phonegap developer  ใส่ ip และ port ที่ปรากฎใน commad line ลงใน application และแตะ connect เพื่อทดสอบ Aplication


8. Apllication จะปรากฎหน้า html ที่เขียน สังเกตุได้จากข้อความที่เราได้เปลี่ยนในไฟล์ index.html