แสดงบทความที่มีป้ายกำกับ php แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ php แสดงบทความทั้งหมด

วันพฤหัสบดีที่ 22 พฤษภาคม พ.ศ. 2557

PHP แสดงข้อมูลจาก วันเกิด (วัน เดือน ปี) เป็นอายุ กี่ปี กี่เดือน กี่วัน

เป็น script php การแปลงวันเกิด ให้แสดงผลในรูแบบ อายุกี่ปี กี่เดือน กี่วัน จากการทดสอบก็ค่อนข้างจะใช้ได้ครับ ไม่มีคำสั่งที่ซับซ้อนที่ยุกยาก นอกจากบวก ลบ เลขธรรมดา  จึงเป็น สคริป (script) การแปลงวันที่ ที่เป็นวันเกิด เป็นวันเดือนปี อย่างง่าย ที่สามารถนำไปทดลอง ใช้งานได้ครับ

ตัวอย่างการใช้คำสั่ง
echo show_year_month_day_for_age('2003-05-01');

ผลลัพธ์

11 ปี 0 เดือน 21 วัน

จากวันที่ด้านบนจะนับเป็น 21 วันเพราะวันที่ 22 ยังไม่ผ่านตามคำสั่งนี้เลยยังไม่นับวันที่ 22 ด้วย ทำให้ผลลัพธ์ที่ได้เป็น 21 วัน

ตัวอย่างคำสั่ง

function show_year_month_day_for_age($pbday)
{
$dinm = array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
$today = date("Y-m-d");
list($byear , $bmonth , $bday) = explode("-" , $pbday);
list($tyear , $tmonth , $tday) = explode("-" , $today);
$result_y = $today-$byear;
$result_m = $tmonth-$bmonth;
if($result_m น้อยกว่า 0) {
$result_y = $result_y-1;
$result_m = 12-abs($result_m);
}
$result_d = $tday-$bday;
if($result_d น้อยกว่า 0) {
if($result_m!=0) {
$result_m = $result_m-1;
} else {
$result_y = $result_y-1;
$result_m = 12-1;
}
$d = $dinm[$tmonth-1];
if($tmonth==2 && ($tyear%4)==0) { //ปีที่มี ก.พ. 29 วัน
$d = $d+1;
}
$result_d = $d-abs($result_d);
}
$age = $result_y." ปี ".$result_m." เดือน ".$result_d." วัน";
 
return($age);
}

จากตัวอย่างคำสั่งด้านบนอาจจะมีผิดพลาดได้ครับแต่เท่าที่ลองทดสอบยังไม่เจอข้อผิดพลาด หากนำไปใช้อาจจะปรับให้มีความสมบุรณ์มากขึ้นไปอีกครับ


ปล.

คำว่า  น้อยกว่า  คือเครืองหมาย น้อยกว่า ใส่ไม่ได้ระบบบอกว่าเป็น รหัส html ไม่ผ่าน เลยต้องเพิ่มเป็นข้อความเอาครับ

วันพฤหัสบดีที่ 27 พฤษภาคม พ.ศ. 2553

กำหนดค่า คำสั่ง include ให้กับตัวแปรใน php

จากปัญหาการ include ค่าจาก php ปกติแล้ว ผลการ include ปกติจะได้ค่ามาแสดงผลให้กับไฟล์ที่ได้เรียกใช้ include หากต้องการกำหนดค่าที่ได้จากการ include นั้นไว้ในตัวแปรสักตัวหนึ่ง เพื่อนำไปใช้ในการคำนวนต่อไปนั้น สามารถใช้วิธีการนี้เป็นอีกวิธีการหนึ่งที่อาจจะช่วยแก้ปัญหาได้ ดังนี้

แบบนี้ผิดนะครับลองแล้วไม่ได้

$content = include("file.php");


แต่ลองมาใช้แบบนี้สามารถใช้งานได้ครับ

ob_start();
include('file.php');
$content = ob_get_clean();









ขอบคุณที่มา
http://www.codingforums.com/archive/index.php/t-124537.html

วันพฤหัสบดีที่ 6 พฤษภาคม พ.ศ. 2553

php heredoc



Heredoc เป็นวิธีที่ดีในการสร้างสตริงใน PHP ที่มีเส้นมากขึ้น แต่โดยไม่ต้องใช้ใบเสนอราคาHeredoc ใช้ไม่ค่อยเป็นวันโดยใช้วันที่มีความซับซ้อนมากขึ้นเช่นการสร้างสตริงด้วยเครื่องหมายคำพูดหรือคำพูดคู่ นอกจากนี้ไม่ถูกต้อง heredoc ใช้งานแล้วสามารถนำไปสู่ปัญหาในรหัสของคุณ

แต่ถ้าคุณต้องการที่จะใช้คุณสามารถทำได้ด้วยวิธีดังต่อไปนี้






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








ผลลัพธ์

Hello Max! This is a demo message with heredoc.

อย่าลืมว่าจะไม่ได้รับอนุญาตให้เยื้องแท็กปิดถ้าคุณทำเช่นนั้นคุณจะได้รับข้อผิดพลาดในการแยกวิเคราะห์





ขอบคุณ
http://www.phpf1.com/tutorial/php-heredoc-syntax.html

วันพุธที่ 6 มกราคม พ.ศ. 2553

php session_start แล้ว warning ไม่หาย

บางทีนะครับ เรื่อง warning ก็น่าปวดหัว แต่ที่ผมเจอมากับตัวเองก็คือ

ทำ session_start() แล้วมี warning ตลอด ทั้งที่ ไฟล์นั้นมีแค่คำสั่ง session_start เพียงคำสั่งเดียวก็ตาม

วิธีการแก้ไข

ง่ายมาก ๆ ครับ

สร้างไฟล์ใหม่ขึ้นมาแล้ว แล้วก็เอา code เดิมเราไปทดสอบ สามารถทำงานได้เฉยเลยครับ

เพิ่มเติมนะครับ เพราะบางที่ Save งานจากโปรแกรมที่แตกต่างกันก็ทำให้เกิดลักษระอาการแบบนี้ขึ้นมาได้เหมือนกันครับ

ลองดูนะครับเผื่อจะเป็นปัญหาเดียวกัน และอาจจะแก้ไขได้ด้วยวิธีการเดียวกัน