PHP

include ทั่วไทย

posted on 19 Aug 2008 17:11 by dexterian  in PHP

ปัญหาเรื่องการ include ไฟล์คงเจอกันไม่น้อยนะงับ เช่น

file1.php มีการ include file2.php ที่อยู่ใน folder เดียวกัน

wwwroot
|
|- file2.php
|- file1.php
จะเขียน include ได้ดังนี้

include("file2.php");

เท่านี้ ข้อมูลใน file2.php จะถูกใส่เข้ามาใน file1.phpได้อย่างไม่มีปัญหา เพราะ path ถูกต้อง

แต่เด๋วก่อน !! มันไม่ยืดหยุ่นเอาซะเลย
ถ้าเราย้าย file1.php เข้าไปใน folder อีกชั้นนึงล่ะ

wwwroot
|
|- file2.php
|- subfolder
|
|- file1.php

ทีนี้ล่ะ include("file2.php") error แน่นอน เพราะ path ไม่ถูกต้อง

ขอแนะนำฟังชั่น globalInc() ที่ข้าพเจ้าใ้ช้ความรู้อันน้อยนิด นัวเนียมันขึ้นมา เพื่่อให้สามารถ include ไฟล์ได้ทุกที่ ทั่วไทย (เท่าที่ข้าพเจ้าลองยังไม่มีปัญหา)

เชิญ copy

# nuania By Dexteri@n
# $file = root ของ file ที่จะ include เริ่มจาก webroot เช่น
# $file = "includes/function.php";

function globalInc($file){
$path = explode("/",$_SERVER["REQUEST_URI"]);
for($i=0;$i<count($path)-2;$i++){
$root.= "../";
}
return $incldPath = $root.$file;
}

ผิดพลาดประการใดก้ออย่าได้ด่ากันเลยนะครับ เปลี่ยนเป็นแนะนำจะดีที่สุด อิอิ ใครมีไอเดียอื่นๆก้อแชร์กันได้นะครับ อยากได้เทคนิคใหม่ๆ เหมือนกัน

edit @ 19 Aug 2008 17:35:32 by Dexteri@n

ปัญหาเวลา gmt +7 บนโฮสจริง

posted on 04 Aug 2008 10:38 by dexterian  in PHP

พอดีเจอปัญหาเรื่อง zone ของเวลาบนโฮสมันไม่เหมือนกะเรา (GMT+7)

จะไปแก้ใน php.ini เองก็ไม่ได้ (โฮสเขานี่ ฮ่าฮ่า) ข้าเลยหาวิธีแก้มาได้ฉะนี้แล

$zone= +7; // GMT/UTC Offset in Hours (2.50 = 2 ชั่วโมง 30 นาที)
print "Time in GMT+7: " . gmdate("Y-m-d H:i:s", time() +
$zone * 3600);

ลองไปใช้กันดูนะ หวังว่าคงมีประโยชน์ 

วันนี้ประสบปัญหาจากการตัด string จากฟังชั่น substr() แล้วตัวสุดท้ายเป็นภาษาต่างดาวซะงั้น
เลยถามพี่กู(เกิ้ล) อีกแล้ว ได้ความว่า ถ้าใช้กับ encoding ที่เป็น tis-620 ไม่มีปัญหา แต่จะมีัปัญหากับ utf-8
ได้วิธีแก้มาดังนี้

ให้ใช้ iconv_substr() แทน เพราะสามารถระบุึ encoding ของ output ได้ด้วย

ตัวอย่าง : iconv_substr($text, 0, 30, "UTF-8");

โดย parameter ตัวสุดท้ายจะเป็น Character encoding ครับ

เอาไปลองกันดูนะค้าบบบ