วันอาทิตย์ที่ 6 ธันวาคม พ.ศ. 2558

Create diff file with php xdiff

โค้ดแสดงบรรทัดที่มีการเปลี่ยนแปลงในไฟล์เริ่มต้นและไฟล์อัพเดตล่าสุด
จะมีประโยชน์ในการ compare ให้โปรแกรมเมอร์หรือผู้ที่ต้องการตรวจสอบแก้ไขไฟล์
ให้สามารถหาตำแหน่งแก้ไขเพิ่มเติมหรือแก้ปัญหาที่เกิดขึ้นได้อย่างสะดวกรวดเร็ว
ใช้คำสั่ง xdiff_file_diff ซึ่งต้อง download dll มาลงเป็น extension ก่อนครับที่ลิงค์
http://pecl.php.net/package/xdiff
<?php

function rec($path,$target,$diff){
 $h = opendir($path);
 $time = time();
 $day = 60*60*24;
 $dayAmount = $day*5;
 while($file = readdir($h)){
  if ($file != '.' && $file != '..' && $file != '.git' && $file != 'nbproject'){
   if (is_dir($path.'/'.$file)){
    rec($path.'/'.$file,$target.'/'.$file,$diff.'/'.$file);
   }else{
    $mtime = filemtime($target.'/'.$file);
    if ($time - $mtime < $dayAmount){
     $p1 = str_replace("\\",'/',$path).'/'.$file;
     $p2 = str_replace("\\",'/',$target).'/'.$file;
     $p3 = str_replace("\\",'/',$diff).'/'.$file;
     $tdir = dirname($p3);
     @mkdir($tdir,0777,true);
     xdiff_file_diff($p1, $p2, $p3, 2);
     
     echo "<pre>\r\n=====================================================\r\n\r\n";
     echo '<strong>',str_replace('C:/wamp/www/diff','',$p3)."</strong><br>";
     $a = file($p3);
     foreach($a as $line){
      if (substr($line,0,1)=='-'){
       echo '<span style="color:red">',htmlspecialchars(substr($line,1)),'</span>';
      }
      elseif (substr($line,0,1)=='+'){
       echo '<span style="color:limegreen">',htmlspecialchars(substr($line,1)),'</span>';
      }
      elseif (substr($line,0,2)=='@@'){
       preg_match('/^@@ \-\d+\,\d+ \+(\d+)\,\d+/',$line,$matches);
       echo '<span style="color:#6495ED;">บรรทัดที่  '.$matches[1],'</span>';
      }
      else{
       echo htmlspecialchars($line);
      }
     }
     echo '</pre>';
    }
   }
  }
 }
}

header('Content-type:text/html;charset=utf-8');
rec('C:\wamp\www\init-code','C:\wamp\www\update-code','C:\wamp\www\diff');

วันศุกร์ที่ 25 กันยายน พ.ศ. 2558

cordova build error

หลังจาก update cordova เวอชั่นใหม่หรือ plugin version ใหม่
พอจะ build โปรแกรมมักจะเกิดปัญหาแปลกๆ อยู่เสมอ
บางทีก็แจ้ง error ที่ไม่เข้าใจ ตัวอย่างเช่น
cordova build failed with exit code 8
cordova build failed with exit code 1
cordova build failed with exit code 2
ซึ่งส่วนใหญ่มักจะเกิดจาก plugin หรือโค้ด java มีปัญหาบางอย่างนั่นเองครับ

เพื่อให้แสดง error ที่ละเอียดมากขึ้นให้ลองทำตามนี้ดูครับ

cordova platform remove android
cordova platform add android
cordova build android

วันจันทร์ที่ 20 กรกฎาคม พ.ศ. 2558

Code สำหรับสร้างโค้ดคำสั่ง check ข้อมูลแบบ jquery

var s=document.createElement('script');
s.setAttribute('src','http://code.jquery.com/jquery.js');
document.getElementsByTagName('body')[0].appendChild(s);

window.setTimeout(function(){
$(function(){
      var t = " $(function(){\r\n";
      var formId = $('form[id]').attr('id');
      t += " $('#"+formId+"').submit(function(){\r\n";
      $('form[id]').find(':text[id],select[id]').each(function(){
          var inputId = $(this).attr('id');
          t += " if ($('#"+inputId+"').val()==''){\r\n";
          t += " alert('Invalid "+inputId+"');\r\n";
          t += " return false;\r\n";
          t += " }\r\n";
      });
      t += "return true;\r\n";
      t += "});\r\n";
      t += "});\r\n";
      console.log('\r\n'+t+'\r\n');
});
},3000);
สำหรับ Chrome กดปุ่ม F12 แล้วใส่ไปใน tab console ได้เลยครับ แต่มีเงื่อนไขคือต้องเป็น form ที่มี id และ input ที่จะตรวจสอบจะต้องมี id เช่น
<form id="form1">
   <input type="text" id="text1">
   <input type="text" id="text2">
   <input type="text" id="text3">
   <input type="submit" value="send">
</form>
จะได้ผลลัพธ์เป็น
$(function(){
 $('#form1').submit(function(){
 if ($('#text1').val()==''){
 alert('Invalid text1');
 return false;
 }
 if ($('#text2').val()==''){
 alert('Invalid text2');
 return false;
 }
 if ($('#text3').val()==''){
 alert('Invalid text3');
 return false;
 }
return true;
});
});
ไว้สำหรับเป็นโค้ดสำหรับตรวจสอบทาง javascript ต่อไปครับ

วันอาทิตย์ที่ 5 กรกฎาคม พ.ศ. 2558

PHP Code Builder From Mysql Create Table Code

โปรแกรมแปลง create table ให้เป็น insert และ update query ครับ

ถ้าเขียนโปรแกรมฐานข้อมูลบ่อยๆ และจำชื่อฟิลด์ไม่ค่อยได้
ในการเขียนโปรแกรม insert / update
จะต้องสลับเปิดไปมาระหว่าง phpmyadmin และ php editor ซึ่งเสียเวลาและใช้เวลาพิมพ์มากพอสมควร
รวมถึงอาจจะพิมพ์ผิดต้องแก้หลายครั้ง ถ้าใช้โปรแกรมตัวนี้ช่วยจะไม่ต้องเสียเวลาพิมพ์นานและมีความถูกต้องและรวดเร็วด้วยครับ

แต่เงื่อนไขของโปรแกรมนี้จะต้องเริ่มต้นด้วย ชื่อตาราง และฟิลด์ถัดมาควรจะเป็น primary key ครับ
ไม่งั้นโปรแกรมจะแปลงข้อมูลได้ไม่ถูกต้อง

CREATE TABLE `ชื่อตาราง` (
 `id` INT(6) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT, /* primary key */
 `m_id` INT(6) UNSIGNED ZEROFILL NULL DEFAULT NULL,
 `name` VARCHAR(120) NOT NULL,
 `phone` VARCHAR(60) NOT NULL,
 `status` INT(1) NOT NULL,
 `date` DATE NOT NULL
);
ลิงค์โปรแกรม PHP Code Builder From Mysql Create Table Code