ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: EThaiZone ที่ 05 มีนาคม 2007, 19:27:38



หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 05 มีนาคม 2007, 19:27:38
สารบัญ PHP Room By EasyChill

ถ้า เปิดคุณอยากแสดง email แต่กลัวเรื่องโดนโปรแกรมไล่ดูดเมล์ ก็ต้อง เข้ารหัสอีเมล์ ? by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg82848.html#msg82848

เทคนิค ใช้ if แบบ ไม่มี if by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg82887.html#msg82887

เทคนิคการสร้าง 00001 (เทคนิคนี้จากคุณ Tee++; ) by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg82893.html#msg82893

การแสดงผลโดยไม่ใส่ echo และสั้นสุดๆ  by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg82897.html#msg82897

วิธีเพิ่มความเร็วให้กับ php อีกนีด  by aomnaruk
http://www.thaiseoboard.com/index.php/topic,6920.msg83192.html#msg83192

ใช้ลูปอย่างไรให้เหมาะสม ? by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg83364.html#msg83364

ตามคำขอ กันสแปมเมล์ by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg83430.html#msg83430

ตกม้าตายกะ header by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg83538.html#msg83538

มาเสริมให้นิดนึงครับกับ Function ที่มักจะใช้ร่วมกับ header คือพวก ob ต่างๆ  by Tee++;
http://www.thaiseoboard.com/index.php/topic,6920.msg83590.html#msg83590

function ใน PHP ที่ไม่ค่อยมีคนใช้กัน หรืออาจลืมไป by Tee++;
http://www.thaiseoboard.com/index.php/topic,6920.msg83819.html#msg83819

เทคนิคพิเศษที่ถูกซ่อน ระหว่าง string และ array by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg84216.html#msg84216

array_walk( array , callback function [, mixed userdata]) by Tee++;
http://www.thaiseoboard.com/index.php/topic,6920.msg84699.html#msg84699

เทคนิคเพิ่มความเร็ว และลดการใช้งาน mysql by ColdMoney
http://www.thaiseoboard.com/index.php/topic,6920.msg84707.html#msg84707

ต่อเนื่องจากโพสแคชไฟล์ของคุณ ColdMoney by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg84839.html#msg84839

การเก็บแคช(ต่อ) by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg85406.html#msg85406

การเรียกพาท by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg85410.html#msg85410

เคยมีหลายครั้งไหมที่อยากจัดการบทความที่มีทั้ง ขึ้นบรรทัดใหม่บ้าง จัดคำไม่เป็นส่วนบ้าง เดี๋ยววรรคยาวๆ สั้นๆ by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg87478.html#msg87478

สคริป Related จาก Google by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg87519.html#msg87519

ขั้นตอนคำสั่งการใช้ mysql by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg87888.html#msg87888

อยากจะเป็น PHP ต้องทำอย่างไร  by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg88340.html#msg88340

วิธีการทำผลการค้นหาแสดงเป็น % by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg94077.html#msg94077

เวลาตัดทดศนิยมด้วยฟังค์ชั่น round มันจะปัดเศษด้วย ทำอย่างไรถึงจะไม่ให้มันปัดเศษ by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg106114.html#msg106114

การทำ sitemap ให้อยู่ในรูป gzip by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg115153.html#msg115153

การตั้งค่า Parameter ในสภาพติดลบ by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg155392.html#msg155392

การทำรายการที่มี comma คั่น by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg159536.html#msg159536

การเรียกรายการข้อความโดยไม่เกิดปัญหา by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg162501.html#msg162501

ตอนพิเศษ : Loop in the loop by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg165938.html#msg165938

การใช้ cURL แทน file_get_contents ครับ แถมด้วยการปลอมตัวเป็น browser เพื่อหลอก server ด้วย  by lowprofile
http://www.thaiseoboard.com/index.php/topic,6920.msg169809.html#msg169809

วิธีการทำงานร่วมกันของ Html กะ PHP by Pipo
http://www.thaiseoboard.com/index.php/topic,6920.msg178146.html#msg178146

วิธีการทำงานร่วมกันของ Html กะ PHP by lowprofile
http://www.thaiseoboard.com/index.php/topic,6920.msg178527.html#msg178527

ความแตกต่างระหว่าง include กะ require by lowprofile
http://www.thaiseoboard.com/index.php/topic,6920.msg178532.html#msg178532

คำเตือนเรื่องการใช้ include by icez
http://www.thaiseoboard.com/index.php/topic,6920.msg180355.html#msg180355

วิธีการทำระบบ Tags ตามแบบฉบับ WEB2.0
by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg180588.html#msg180588

สำหรับบางสคิปบางตัวที่ทำงานเป็นเวลานานๆแต่ขี้เกียจเปิดเครื่องเพื่อรันสคิปทิ้งไว้(เปลืองไฟ)
by aomnaruk
http://www.thaiseoboard.com/index.php/topic,6920.msg181478.html#msg181478

ตัวอย่างการใช้ fsockopen ในการส่งข้อมูลแบบ POST by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg195440.html#msg195440

วิธีทำ redirect page แบบเว็บ anony by mixture
http://www.thaiseoboard.com/index.php/topic,6920.msg206604.html#msg206604

การรับส่งค่า ระหว่าง window หลัก และ popup และการเรียกใช้ parent ระหว่าง iframe กับ main iframe by nuijang24
http://www.thaiseoboard.com/index.php/topic,6920.msg213788.html#msg213788

@ คืออะไรครับ ไว้ทำอะไรเหรอ  ถาม  hurahura ตอบ by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg215572.html#msg215572

อัพเดต! สคริป Related จาก Google by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg218463.html#msg218463

สคริป Related จาก Google อัพเดต2! by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg218481.html#msg218481

User Online TXT by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg221008.html#msg221008

ฟังค์ชั่นแปลงภาษาไทยเป็น utf8 by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg225883.html#msg225883

ฟังค์ชั่นแปลง tis620 เป็น utf-8 อีกตัวครับ  by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg228813.html#msg228813

glob() by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg241386.html#msg241386

การเขียน Regex เพื่อเช็คภาษาไทย by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg241540.html#msg241540

คลาสแปลง UTF8 เป็น punycode by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg244187.html#msg244187

ฟังค์ชั่นแปลง utf8 กลับเป็น tis620 by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg244228.html#msg244228

เอาไว้ดึง Google Keyword Suggestion by aomnaruk
http://www.thaiseoboard.com/index.php/topic,6920.msg246639.html#msg246639

เรื่องหัวข้อเออเร่อหน่อยครับ  ว่าแต่ละอันหมายความว่ายังไง by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg254710.html#msg254710

ความเป็นไปได้ของ 1 ใน 100 by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg255001.html#msg255001

การเขียนตรวจสอบ Keyword Density อย่างง่ายๆ  by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg255006.html#msg255006

โค้ดทำ highlight keyword by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg258794.html#msg258794

Random Cron Script by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg261130.html#msg261130

สคริปใช้เอง ใช้ดึงพาทโดยตรงของยูทูป  by EThaiZone
http://www.thaiseoboard.com/index.php/topic,6920.msg263772.html#msg263772



เปิดห้องแชร์ PHP ครับ

ตอนแรกก็ไม่นึกอะไร แต่พอมานึกว่ามีห้องอังกฤษ (ของคุณ pete)
มันน่ามี php มั้งนะ ไหนๆ คอ php ก็เยอะ (กว่าครึ่งเป็นขาซุ่ม อิๆ)

คนไหนเป็น php ก็ช่วยมาแชร์ทริกต่างๆ กันบ้างนะครับ

วันนี้เริ่มด้วยอันนี้ละกัน

ถ้า เปิดคุณอยากแสดง email แต่กลัวเรื่องโดนโปรแกรมไล่ดูดเมล์
ก็ต้อง เข้ารหัสอีเมล์ ?

โค๊ด:
<?
$str = "I love you!";

for ($i = 0; $i < strlen( $str ); $i++ ) {
$unicode[] = "&#".ord($str[ $i ]).";";
}
$unicode = implode("",$unicode);

echo $unicode;
?>

ผลที่ได้คือ
โค๊ด:
I love you!

(ลอง view source ดูครับ)

ต่อแต่นี้ไปว่างๆ หรือมีไอเดียจะเอามาแปะครับ ^^


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: pete ที่ 05 มีนาคม 2007, 19:33:06
ขอบคุณคับ เป็นอีก 1 กระทู้ที่น่าสนใจมากๆ
ขอเป็นแฟนกระทู้ 1 คนคับ ^^


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: BosnoS ที่ 05 มีนาคม 2007, 19:46:21
สงสัยต้องมาอ่านทุกวัน


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: [email protected] ที่ 05 มีนาคม 2007, 19:46:25
good...


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: aomnaruk ที่ 05 มีนาคม 2007, 19:55:25
ร่วมแชร์ได้เปล่าครับ  :?:  :?:


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: melonsplitz ที่ 05 มีนาคม 2007, 20:23:13
ขอเข้ามาเรียนด้วยคร้าาาบ อิอิ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Ctrl-Alt-Del ที่ 05 มีนาคม 2007, 20:29:06
ขอเข้ามาซุ่มดูก่อนน่ะครับ ยังเขียน PHP ไม่เป็นเลย  :lol:
แต่เป็นกระทู้ที่น่าสนใจดีครับ แล้วจะมาติดตามเรื่อยๆครับ  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 05 มีนาคม 2007, 20:40:26
อ้างจาก: "aomnaruk"
ร่วมแชร์ได้เปล่าครับ  :?:  :?:


ร่วมเลยขอรับ กระทู้มันได้มีเนื้อหาเยอะๆ  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: successman ที่ 05 มีนาคม 2007, 20:40:42
ขอเข้าร่วมเป็นนักเรียนด้วยนะครับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: pacapao ที่ 05 มีนาคม 2007, 20:41:14
ขอบคุณมาก ที่คิดกระทู้นี้ขึ้นมา

มีประโยชน์กับโลกน้อยใบนี้มากคับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 05 มีนาคม 2007, 20:48:18
เทคนิค ใช้ if แบบ ไม่มี if

เป็นเทคนิคการสร้างเงื่อนไข โดยไม่ต้องพิมพ์ if
โดยวิธีนี้ใช้ได้ดีเวลาที่ทั้งจริงและเท็จ ต้องใช้ฟังค์ชั่นหรือการกระทำเหมือนกัน
เช่น ถ้าถูกให้แสดง yes ถ้าผิดให้แสดง no

ยกตัวอย่างจาก
โค๊ด:
if(2 > 1) {
     echo 'yes';
} else {
     echo 'no';
}
เราจะมีใช้เทคนิคจะเขียนได้เป็น

โค๊ด:
echo 2 > 1 ? 'yes' : 'no';

โครงสร้างจึงเป็น

ตัวเริ่มต้น เงื่อนไข ? การกระทำจริง : การกระทำเท็จ;

โดยตัวเริ่มต้นจะใช้เป็นฟังค์ชั่นหรือตัวแปรก็ได้
อีกตัวอย่าง
โค๊ด:
$a = 5;
$b = 2;
$i = $a == $b ? $a.' เท่ากับ '.$b : $a.' ไม่เท่ากับ '.$b;
echo $i;

หวังว่าจะมีประโยชน์นะครับ  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: youcanberich ที่ 05 มีนาคม 2007, 20:53:37
ขอนั่งแถวหน้าครับ   :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 05 มีนาคม 2007, 21:07:17
เทคนิคการสร้าง 00001 (เทคนิคนี้จากคุณ Tee++; )

ปกติในค่าตัวแปร php จะกำหนดได้ 2 ชนิดแน่ๆ
คือตัวอักษรและตัวเลข แต่ก็มีหลายกรณีที่อยากให้ตัวเลขเป็นเหมือข้อความ
อย่าง 00001

ดังนั้นเราจะมาดูวิธีกันว่าจะทำยังไง ให้ หน้า 1 มี 0 และนำมาใช้คำนวณได้ด้วย ^^

โค๊ด:
$n = 1;
$n2 = sprintf("%05d", $n);

พอเรา echo $n2 จะได้ 00001
แล้วถ้าเราอยาก + - ก็ทำที่ $n แล้วถึงมาใช้ฟังค์ชั่น sprintf ช่วยครับ

อธิบาย %05d
% ใช้ในการระบุตำแหน่งการ แทนที่ ค่าในตัวแปรลงไปยังในข้อความ
โดยชนิดของค่าจะต้องอยู่หลัง % เสมอ
อย่าง %d ก็จะเป็นตัวเลข หรือ %s จะเป็นข้อความ

แต่ของเราเป็น %05d หมายถึงขอตำแหน่งตัวเลข ไว้ 5 ตำแหน่ง โดยเอา 0 แทนที่ข้างหน้า

ต้องลองทดสอบหลายๆ ตัวดูครับ จะรู้ว่าช่วยได้เยอะ
สามารถเอาไปประยุกต์ทำระบบบัญชีออนไลน์ก็ยังได้ครับ

%.4f จองค่าเป็นทศนิยม 4 ตำแหน่ง

http://au.php.net/sprintf


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: NongNatty ที่ 05 มีนาคม 2007, 21:09:23
$a = (($b < 0 ? $b : -1));

เปรียบได้กับ

-----------

if($b < 0) {
 $a = -1;
} else {
 $a = $b;
}

-----------
$b = -1;
if($b > 0)
 $a = $b

และอื่นๆ อีกเยอะแยะเลย


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: NongNatty ที่ 05 มีนาคม 2007, 21:11:55
อ้างจาก: "NongNatty"
$a = (($b < 0 ? $b : -1));

เปรียบได้กับ

-----------

if($b < 0) {
 $a = -1;
} else {
 $a = $b;
}

-----------
$b = -1;
if($b > 0)
 $a = $b

และอื่นๆ อีกเยอะแยะเลย



ขอฝาก

ถึงคุณ NongNatty,

มีข้อความส่วนตัวมาถึงคุณ บนเว็บ "ThaiSEOBoard.com" และคุณได้กำหนดให้มีการแจ้งเตือนไว้ด้วย
คุณสามารถอ่านข้อความได้โดยคลิกที่ลิงค์ด้านล่างนี้:
http://www.thaiseoboard.com/privmsg.php?folder=inbox

คุณสามารถกำหนดไม่ให้มีการแจ้งเตือนได้ โดยการเปลี่ยนการตั้งค่าในข้อมูลส่วนตัว

--
โซวบักท้ง
ThaiSEOBoard.com

อันหยั๋งหว่า คลิ๊กแล้ว ไม่เห็นมีไรเลย


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 05 มีนาคม 2007, 21:12:28
เทคนิคสุดท้ายของวัน
(มุขจะแป๊กแล้วอะ ใครก็ได้นึกไรออกมาโพสด้วยกันนะครับ)

การแสดงผลโดยไม่ใส่ echo และสั้นสุดๆ

เพราะเราจะใส่ printf (ปึ๊ก! ใครปารองเท้ามา อูยๆๆ ขำปะ ?)

หลายคนที่ชอบทำระบบเหมือนเทมเพลต
มักจะใช้ <? echo $var; ?>

ดังนั้นทริกนี้จะทำให้มันสั้นสุดๆ จะได้เป็น
<?=$var?>

สั้นปะ หวังว่าจะได้ใช้ประโยชน์นะครับ  :D

และแล้วก็หากินไปได้อีก 1 โพส
แต่พรุ่งนี้จะเอาไรมาโพสดีหว่า 555+


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Yube ที่ 05 มีนาคม 2007, 21:23:48
ขอติดตามด้วยคนครับ
คาดว่าจะเป็นอีกหนึ่งกระทู้ที่ hot ในอนาคต  :D  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Tee++; ที่ 05 มีนาคม 2007, 21:25:45
เยี่ยมครับ ขออ่านด้วยคน ว่าแต่ ...


เมื่อไหร่จะมีห้องโปรแกรมเมอร์นะ  :cry:


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: ColdMoney ที่ 05 มีนาคม 2007, 21:36:07
น่าสนอ่ะครับ แต่ไม่รู้จาแชร์ไรดีอ่ะครับ  :lol:


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: 7 ที่ 05 มีนาคม 2007, 21:45:27
คุณ EThaiZone ไม่ทำ blog ต่อหล่ะ แต่อย่าใช้ msn เลยนะ ขอร้อง  :lol:


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: yak2525 ที่ 05 มีนาคม 2007, 22:21:03
thank


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 05 มีนาคม 2007, 22:21:57
อ้างจาก: "7"
คุณ EThaiZone ไม่ทำ blog ต่อหล่ะ แต่อย่าใช้ msn เลยนะ ขอร้อง  :lol:


ก็กะว่าจะมาใช้ blog เหมือนเดิมครับ
เพราะ msn ตอนนี้ผมแก้ข้อมุลส่วนตัวไม่ได้ อายุยัง 18 อยู่เลย
ไม่รู้บั๊กหรือเปล่า  :?


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: sealinda ที่ 06 มีนาคม 2007, 02:03:15
:D  :D  กระทู้น่าสนใจมั่กๆ เลยค่ะ  :D เขียน php มะเป็นอ่ะ มาขอเรียนด้วยคนนะ มาขอจองที่นั่งแถวหน้าเหมือนกัน  :lol:  :lol:  :lol:  :lol:


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: pongino ที่ 06 มีนาคม 2007, 02:07:18
คืออยากแชร์เหมือนกัน แต่ไม่รู้ว่าจะแชร์อะไร
เวลาเขียนโปรแกรม ผมใช้หลัก KISS
Keep it Simple and Stupid
คือเขียนแบบ โง่ๆ แต่ได้ผลชัวร์ แหะๆๆ

แบบว่า trick เกี่ยวกับ syntax ไม่มีเลยจ้า อายจัง  :oops:


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: jzyjjx ที่ 06 มีนาคม 2007, 09:33:11
ตามมาเรียนด้วยค่ะ

 :P


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: cmbuy ที่ 06 มีนาคม 2007, 12:23:30
เข้าท่าดี
มีที่ให้จ่มเพิ่มล่ะ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: jaja ที่ 06 มีนาคม 2007, 12:28:14
มือใหม่นะครับ

ลูกศิษย์ อยากจะถามอาจารย์ว่า

การที่เราดึงข้อมูลจาก My Sql มาแสดงเรียกว่าอะไรครับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 06 มีนาคม 2007, 13:55:43
อ้างจาก: "jaja"
มือใหม่นะครับ

ลูกศิษย์ อยากจะถามอาจารย์ว่า

การที่เราดึงข้อมูลจาก My Sql มาแสดงเรียกว่าอะไรครับ


ก็เรียกว่าการดึงฐานข้อมูลแหละครับ
ขั้นตอนการทำงานมันก็คือ
- ติดต่อฐานข้อมูล
- เลือกฐานข้อมูล
- ส่งคำสั่งเรียกข้อมูล ภาษาหลักเขาเรียกกว่า query
- นำผลลัพท์ที่ได้มาแปลง ซึ่งปกติจะแปลงเป็น array

แล้วก็ค่อยเอา array ที่ได้มาใช้งานครับ

โดยหลักๆ ต้องเขียน query เรียกให้ถูกครับ
ส่วนมากตกม้าตายกันเยอะ  :D

**array คือชุดข้อมูลที่ถูกจัดไว้ในตัวแปรเดียวกัน
โดยชนิดของ array จะเรียกกันเป็นมิติ (2มิติ 3 มิติ)
ซึ่งการเขียน php  array ถือเป็นเบสิคที่สำคัญที่ต้องเป็นครับ  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: 7 ที่ 06 มีนาคม 2007, 14:06:08
ภาษาในการจัดการฐานข้อมูลเป็นภาษากลางของ IBM เรียกว่า SQL ครับ จะได้หาข้อมูลถูก


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: sealinda ที่ 06 มีนาคม 2007, 16:22:12
:shock:  :shock: งึมๆ จะจำหมดมั้ยเนี่ย

ว่าแต่ สนใจจะสอนตั้งกะพื้นฐานมั้ยคะ  :oops:  :oops:  :oops: แบบว่า ไม่รู้อารัยเกี่ยวกับ php เลยง่ะ งุงิ  :oops:  :oops:


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: golf98765 ที่ 06 มีนาคม 2007, 16:26:24
เอามาให้อ่านเยอะนะครับ จะให้ดีทำเว็บเก็บไว้เป็นข้อๆ เลยครับ
ผมว่าดีนะ  :idea:

ขอบคุณคร๊าบ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: aomnaruk ที่ 06 มีนาคม 2007, 17:02:30
วิธีเพิ่มความเร็วให้กับ php อีกนีด

1.ใช้เทคนิค เปิดปิดแท็ก <?  ?>  ในกรณีแทรกโค็ต HTML เยอะๆ
แทนการใช้ำสั่ง print "" หรือ echo
เช่น

โค๊ด:
<?
print"<html>";
print"<title>noob</title>";
$name = aomnaruk ;
$seo = md5($name);
print"Username = $name";
print "<br>" ;
print"Password = $seo";
print "<br>" ;
print "<br> I Hack you";

print"</html>";
?>


จะเห็นได้ว่าใช้ print มากเกินความจำเป็นแถมเปลือง cpu ในการโหลด code อีก

โค๊ด:
<html>
<title>noob</title>
<?
$name = aomnaruk ;
$seo = md5($name);
print"Username = $name";
print "<br>" ;
print"Password = $seo";
?>

<br>  
<br> I Hack you

</html>


จะแสดงผลออกมาเหมือนกันแต่อย่างหลังจะทำงานเร็วกว่า
และจะยิ่งเห็นผลถ้าโหลดสคริ็ปนี้หนักๆ

พอหอมปากหอมคอวันแค่นี้ละกันครับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: winzaan ที่ 06 มีนาคม 2007, 21:29:59
รอติดตามเรื่อยๆครับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 06 มีนาคม 2007, 22:31:20
ใช้ลูปอย่างไรให้เหมาะสม ?

ลูปใน php มีหลายชนิดครับ ขอแยกเป็นข้อๆ เลยละกัน

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

for ลูปอันนี้เหมาะในการทำงานแบบบังคับนับรอบ
คือกะเอา 5 รอบ 10 รอบแบบตายตัว
ใช้ลูปตัวนี้จะเหมาะครับ

foreach ลูปตัวนี้เหมาะกับการดึงข้อมูลจาก array มากๆ
เพราะเมื่อหมดแถว array มันจะหยุดทันที
แถมยิ่งใช้งานได้ดีในกรณีเขียน array ที่มากกว่า 2 มิติขึ้นไปครับ

และอย่าลืม อีก 2 ฟังค์ชั่นที่ช่วยคุณได้
continue ใช้ข้ามการทำงานของลูปรอบๆ นั้น 1 รอบแล้วข้ามไปทำรอบต่อไป
และ break ใช้หยุดการทำงานของลูปในทันทีเลย

หวังว่าจะช่วยได้นะครับ  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: toony ที่ 06 มีนาคม 2007, 22:51:33
โห หน้า 3 แระ จาตามอ่านทันไหมเนี้ย มาทีหลัง ด้วย มองไม่ค่อยเห็นอ่ะ  

เป็นกระทู้ที่ดี มาก ๆ อีก ทู้ครับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: chonyagusa ที่ 06 มีนาคม 2007, 22:59:36
อยากได้แบบนี้อ่ะ ทำให้หน่อยได้มะงับ

คือถ้า เราเขียนหรือใครเขียนคำว่า @ ให้เปลี่ยนเป็นรูป (http://www.saiyaithai.org/l2aelba_Studio/at.gif)

โค๊ด:
http://www.saiyaithai.org/l2aelba_Studio/at.gif


กันโปรแกรมดูดเมล์ -*-


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 07 มีนาคม 2007, 00:07:06
ตามคำขอ กันสแปมเมล์

โค๊ด:
<?
header("Content-type: image/gif");
$img = imagecreate(160, 18);
imagecolorallocate($img, 255, 255, 255);
$color = imagecolorallocate($img, 0, 0, 0);
imagestring($img, 3, 2, 2, "[email protected]", $color);
imagegif($img);
imagedestroy($img);
?>


ขอข้ามการอธิบาย
ไม่รู้จักตัวไหน ค้นที่ php.net ครับ

ผลลัพพ์ได้แบบนี้
(http://img50.imageshack.us/img50/2153/95778766hm8.gif)


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 07 มีนาคม 2007, 08:18:15
ตกม้าตายกะ header

header() เป็นฟังค์ชั่นที่ทำให้เราส่งข้อมูลในระดับ header ได้

ในระบบเว็บจะไล่การส่งข้อมุลในรูปแบบนี้

header(ใช้บอกสถานะภาพของเพจนั้นๆ) -> session(ใช้บอกข้อมูลเช่นคุ๊กกี้) -> data (บอกเนื้อหาของเพจ)

แล้วที่นี้หลายคนอาจเจอ error แบบนี้

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\test2.php:1) in C:\AppServ\www\test2.php on line 37

ซึ่งความจริงเกิดจากมีการส่ง data มาก่อน แล้วพอมีส่ง header มาอีกที
มันเกิดสภาพซ้ำซ้อนเลยฟ้องขึ้นมา

ตัวอย่างลองดู 2 โค้ดนี้ครับ

โค๊ด:
<?
header("");
echo "test";
?>

กะ

โค๊ด:
 <?
header("");
echo "test";
?>


ความต่างอยู่ตรงไหนครับ ?.....
ก็ตรงหน้า <? ของโค้ดที่ 2 มีช่องว่าง
เท่านั้นแหละครับ error จะเกิดขึ้นมาทันที

ดังนั้นต้องจำไว้ว่าฟังค์ชั่น header() นั้น  ต้องใช้ก่อนการแสดงผลใดๆ ทั้งสิ้น
ห้ามมีแม้แต่เว้นวรรคสัก 1 ช่องเลย ไม่งั้นจะ error แบบตกม้าตายเอาได้ครับ

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


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: e-business ที่ 07 มีนาคม 2007, 09:27:23
ขอบคุณครับที่มีกระทู้นี้ มีประโยชน์มากๆครับ ไว้จะคอยติดตามอ่านเรื่อยๆครับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Tee++; ที่ 07 มีนาคม 2007, 10:35:35
มาเสริมให้นิดนึงครับกับ Function ที่มักจะใช้ร่วมกับ header คือพวก ob ต่างๆ

ob_start(); อันนี้เป็นคำสั่งสำหรับการจอง Buffer เพื่อไม่ให้เกิดการ Error เอามาใช้ร่วมกับ header() ได้แบบนี้

โค๊ด:

ob_start(); // จอง Buffer
echo "something"; // output
header("Refresh: 5; url=/folder/"); // redirect
ob_end_flush(); // คืน buffer


ตามตัวอย่างข้างบนจะมีการ Error เกิดขึ้นถ้าเรสไม่มีการจอง Buffer ให้นะครับ นอกจากนี้คำสั่งที่เรามักใชร่วมกับ ob ก็มีอีกหลายๆตัว เช่น


โค๊ด:

<?
<html>
<head>
<style type='text/css'>
<!--
.frame {
width: 304px;
position:absolute;
border: solid 1px #eeeeee;
padding: 1px;
}
//-->
</style>
</head>
<body>

<div class='frame'>

<?
if (ob_get_level() == 0)
   ob_start();
for ($i=1;$i<=10;$i++) {
echo "<span style='background-color:#eeeeee;width:30px;'></span>";
//echo $i."<br />\n";
flush();
ob_flush();
sleep(1);
}
ob_end_flush();
?>

</div>

</center>
</body>
</html>


คำสั่ง Flush จะเป็นตัวที่จะ Render หน้าจอครับ คือ $i จะค่อยๆ โผล่มา ไม่ได้รอจนจบแล้วค่ิอยโผล่มาครับจะเป็น
1..
2..
3..
1000..

ไม่ใช่รอจนครบ 1000 แล้วค่อยแสดงผล มักใช้กับการทำไฟล์ install พวห template อะไรพวกนั้น  

ob_get_contents() // เป็นคำสั่งที่เอาไว้ get content ทุกอย่างที่อยู่ buffer โดยเราสามารถเอามาเก็บในตัวแปรได้เช่น

โค๊ด:

ob_start();
echo "Tee++";
echo "<br />";
echo "T_T";
$output = ob_get_contents();
ob_end_clean();

echo $output; // ค่าออกที่นี่


ตามตัวอย่างข้างบนจะไม่มี output ใดๆเลย ถ้าเราไม่ echo ออกมา

นอกจากนี้แล้วยังมีคำสั่ง ob ที่น่าใช้อีกมากลองไปศึกษาจาก Manual ของมันนะครับ เช่น

ob_get_level() // เอาไว้ตรวจสอบว่ามีการจอง Buffer แล้ว ?
ob_get_clean() // มันคล้ายๆ get_contents รวมกับ end_clean
ob_get_length() // หาค่า lenght ที่อยู่ใน buffer


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 07 มีนาคม 2007, 10:59:08
ขอบคุณครับ
เรื่อง ob ผมยังไม่เคลียร์เลย  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Tee++; ที่ 07 มีนาคม 2007, 17:10:47
วันนี้ว่าง เลยมาอัพเดทให้อีกกระทู้ เรื่องที่ผมจะเขียนส่วนมากเป็น function ใน PHP ที่ไม่ค่อยมีคนใช้กัน หรืออาจลืมไปนะครับ เพราะอันอื่นหาๆ เอาตามเน็ตหรือเปิด manual ก็น่าจะทำกันได้ไม่ยากนะ

eval()

Function นี้ส่วนมากมักจะใช้กันในการเข้ารหัสไฟล์มาตรฐาน base64 ครับ แต่วันนี้เราลองเอามาใช้กับระบบ Template ง่ายๆ กันดีกว่า

สมมุติว่าเรามี Text ไฟล์ อยู่ตัวนึงข้างในนั้นมีเนื้อหารวมทั้งตัวแปร $var แบบนี้ ทีนี้พอเราดึงมาเปิดด้วยคำสั่ง get file ต่างๆ เช่น

โค๊ด:
$file = @file_get_contents("target.txt");
$var = "Tee";
echo $file;


แบบนี้เราเอามา echo ออกค่าที่ ตัวแปรที่ได้ จะกลายเป็น $var ที่เป็นแค่ srting โดยที่ตัวแปรไม่ได้มีค่าตามที่กำหนด เราสามารถใช้ eval เข้าช่วยได้ครับ

โค๊ด:

$file = @file_get_contents("target.txt");
$var = "Tee";
eval("\$file = \"$file\";");
echo $file;


ถ้าทำตามข้างบน ค่า $var จะเป็นคำว่า "Tee" ตามปกติ  :o


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 08 มีนาคม 2007, 12:02:38
เทคนิคพิเศษที่ถูกซ่อน ระหว่าง string และ array

string คือ ข้อความที่อยู่ในตัวแปร

ซึ่งสำหรับนัก php มันก็คือตัวแปรทั่วไป
แน่นอนว่า php มีตัวแปร 3 ชนิดหลักๆ
1. ตัวแปรทั่วไป variable ใส่ได้สากกะเบือกยันเรือรบ
2. ตัวแปรหลายมิติ array เป็น variable หลายตัวซ้อนกันโดยเรียกใช้อ้างอิงด้วยคีย์
3. ตัวแปรวัตถุ ใช้เขียนเชิง oop เรียกใช้งานแบบคลาส

แต่แน่นอน ความสามารถของตัวแปรไม่สามารถใช้งานข้ามกันได้ยกเว้นใช้วิธีถ่ายทอดข้อมูล

แต่ความจริงมีวิธีเรียกตัวแปรทั่วไปแบบพิเศษ
หลายคนไม่รู้ว่าความจริงตัวแปรทั่วไป สามารถเรียกในรูป arrayได้ด้วย

โค๊ด:
$var = "test";

for($i = 0; $i < 4; $i++) {
echo $var[$i]."-";
}


แต่เราไม่สามารถทำแบบนี้ได้

โค๊ด:
$var = "test";

foreach($var as $cha) {
echo $cha;
}


คือเราสามารถเรียกด้วยคีย์เหมือน array ได้ แต่เราไม่สามารถใช้ฟังค์ชั่นที่รองรับตัวแปรของ array ได้ครับ

ลองเอาเทคนิคนี้ไปใช้ดูนะครับ จะมีประโยชน์เยอะในการจัดการข้อมูล  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Tee++; ที่ 08 มีนาคม 2007, 12:13:01
ขอบคุณครับ พยายามอัพเดทนะครับ ผมตามอ่านอยู่ อิอิ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 08 มีนาคม 2007, 12:45:15
ส่วนมากผมมักพูดถึงระดับคนเขียน php เป็นแล้วอะครับ

ใครว่างมาเปิดส่วนเบสิคก็ดีครับ ในบอร์ดยังมีคนไม่เป็นอีกเยอะครับ

ปล. พี่ตี๋แวะมาคุยใน msn บ้างก็ได้นะครับ  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Tee++; ที่ 08 มีนาคม 2007, 22:53:06
array_walk( array , callback function [, mixed userdata])

คำสั่งนี้นะครับ หลายๆคนก็ไม่ได้ใช้มันแต่ว่า มันมีประโยชน์และสะดวกมากทีเดียวในการแก้ไขและเปลี่ยนค่า Array  :o

ตัวอย่างเช่น

โค๊ด:

$array = range(1, 10);
print_r($array);
array_walk($array, "myfunc", " มีค่าเป็นเลข ");
print_r($array);
function myfunc(&$item, $key, $prefix) {
if (($item%2) == 0)
$item = $item.$prefix."คู่";
else
$item = $item.$prefix."คี่ ";
}


โดยที่ output จะออกมาต่างกันดังนี้

ตัวที่ 1
โค๊ด:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
    [9] => 10
)


ตัวที่ 2
โค๊ด:

Array
(
    [0] => 1 มีค่าเป็นเลข คี่
    [1] => 2 มีค่าเป็นเลข คู่
    [2] => 3 มีค่าเป็นเลข คี่
    [3] => 4 มีค่าเป็นเลข คู่
    [4] => 5 มีค่าเป็นเลข คี่
    [5] => 6 มีค่าเป็นเลข คู่
    [6] => 7 มีค่าเป็นเลข คี่
    [7] => 8 มีค่าเป็นเลข คู่
    [8] => 9 มีค่าเป็นเลข คี่
    [9] => 10 มีค่าเป็นเลข คู่
)



เห็นมั้ยครับง่ายๆ และก็สะดวกทีเดียว ไม่ต้องไปวนลูป ให้เสียเวลา  8)


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: ColdMoney ที่ 08 มีนาคม 2007, 23:12:34
เอามั้งดีก่า เห็นลงกันเยอะเลยอ่ะ

เทคนิคเพิ่มความเร็ว และลดการใช้งาน mysql  
PHP Caching to Speed up Dynamically Generated Sites

ปรกติจะเป็นอย่างนี้
(http://www.developertutorials.com/images/articles/php-caching-1.gif)

หลังจากใช้เทคนิคสร้าง cache ขึ้นมาก็จะเป็นแบบนี้
(http://www.developertutorials.com/images/articles/php-caching-2.gif)

จะเห็นว่าจะลดขั้นตอนการอ่าน template fie และการ access mysql ออกไป ซึ่งจะส่งผลดีกับ performance โดยรวมแน่นอนครับ เร็วขึ้น กินทรัพยากรน้อยลง  :lol:

วิธีการสร้าง cache อย่างง่ายนะครับ
โค๊ด:
<?php 
    ob_start
(); // start the output buffer 
?>


.. Your usual PHP script and HTML here ...

<?php 
     $cachefile 
"cache/home.html"
     
$fp fopen($cachefile'w'); // open the cache file "cache/home.html" for writing 
     
fwrite($fpob_get_contents()); // save the contents of output buffer to the file 
     
fclose($fp); // close the file 
     
ob_end_flush(); // Send the output to the browser 
?>



วิธีใช้งานครับ
โค๊ด:
<?php 
$cachefile 
"cache/home.html"
if (
file_exists($cachefile)) { 
// the page has been cached from an earlier request 
include($cachefile); // output the contents of the cache file 
exit; // exit the script, so that the rest isnt executed 

?>


มีรายละเอียดอีกเยอะอ่ะครับถ้าสนใจก็ไปอ่านเพิ่มเติมที่เว็บ

อ้างถึง
[url]http://www.developertutorials.com/tutorials/php/php-caching/page1.html[/url]
[url]http://www.theukwebdesigncompany.com/articles/php-caching.php[/url]


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Tee++; ที่ 08 มีนาคม 2007, 23:22:07
เยี่ยมไปเลยครับ เทคนิคการสร้าง Cache เหมาะมากๆ กับเวบที่มีคนเข้าจำนวนเยอะๆ ถ้าเพิ่มเวลาหน่วง Cache ลงไปด้วยก็จะสมบูรณ์มากๆ

มีอักตัวแนะนำครับในการทำ cache กับ template ไปด้วยก็ Smarty ไงครับ ครบเครื่องมาก

โค๊ด:
$smarty->caching = true; 


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: sunkoster ที่ 09 มีนาคม 2007, 00:27:49
เพิ่งเข้ามาดู กระทู้มีประโยชน์มากคับ
 :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 09 มีนาคม 2007, 09:55:17
ต่อเนื่องจากโพสแคชไฟล์ของคุณ ColdMoney

เราจะมาเพิ่มระบบเช็คเวลา
เช่นถ้าแคชเก่าเกิน 30 วินาทีให้ทำแคชใหม่ (สามารถแก้ไขให้นานกว่านี้เป็นวันหรือเดือนได้)

ตัวอย่าง

อ้างถึง
<?
    $cachefile = "cache/home.html";
$mtime = time() - @filemtime($cachefile);

if($mtime > 30 || !file_exists($cachefile)) {


ob_start(); // start the output buffer
?>

.. Your usual PHP script and HTML here ...

<?php
 
     $fp = fopen($cachefile, 'w'); // open the cache file "cache/home.html" for writing
     fwrite($fp, ob_get_contents()); // save the contents of output buffer to the file
     fclose($fp); // close the file
     ob_end_flush();
} else
echo file_get_contents($cachefile);

?>

โดยตรง 30 นั้นคือความต่าง หน่วยเป็นวินาที นั้นหมายถึง
ถ้าแคชเก่ากว่า 30 วินาที จะสร้างแคชใหม่

เราสามารถเพิ่มเป็นวันหรือเดือนได้
อย่างอยากให้มีอายุ 1 ชม. ก็ใช้ 60*60
ถ้าเป็น 1 วันก็ 60*60*24
หรือจะกดในเครื่องคิดเลขแล้วค่อยกรอกก็ได้ครับ 1 ชม. = 3600 วินาที  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: winzaan ที่ 09 มีนาคม 2007, 22:01:23
ขอถามหน่อยครับว่าระหว่าง

<br>

กับ

<br /> บางทีก็ <br/>

ต่างกันยังไงครับ

ตัวนี้ >> / คืออะไรครับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: เทมาเส็ก ที่ 09 มีนาคม 2007, 22:20:47
อ้างจาก: "winzaan"
ขอถามหน่อยครับว่าระหว่าง

<br>

กับ

<br /> บางทีก็ <br/>

ต่างกันยังไงครับ

ตัวนี้ >> / คืออะไรครับ


เป็นมาตรฐาน HTML ครับ

<br> ใช้กับ HTML 4.0 ลงไป
<br /> ใช้กับ XHTML 1.0 ขึ้นไป


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: amaudy ที่ 09 มีนาคม 2007, 23:30:10
ThaiSEOBoard.com แหล่งรวมเทพจริงๆ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 10 มีนาคม 2007, 13:50:02
เราจะมาพูดถึงการเก็บแคชต่ออีกหน่อยนะครับ

แคชที่ผมอยากแนะนำให้เก็บจะอยู่ในรูปตัวแปร ถึงจะดี

ฟังค์ชั่นที่อำนวยความสะดวกตรงนี้คือ
serialize และ unserialize

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

ว่างๆ ลองใช้ดูครับ serialize และ unserialize

แต่ก็มีแคชบางชนิดที่เก็บด้วยวิธีปกติก็มีนะครับ
ใช้ให้เหมาะแล้วระบบของเว็บเราจะเบาครับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 10 มีนาคม 2007, 13:57:17
อีกโพสละกัน จะพูดถึงการเรียกพาท กัน

หลายคนมักทีปัญหาเรื่องการเรียกพาทภายใน
ดังนั้นมีชุดคำสั่งที่อยากแนะนำให้ลองใช้ครับ

$path = dirname(__FILE__)."/";

จะทำให้ได้ค่าพาทภายในที่ถูกต้อง

โดยใช้ __FILE__ ในการเรียกตัวไฟล์โดยตรง

หลายคนคงสงสัยนิดๆ ว่าแล้ว $PHP_SELF ละ มันใช้ไม่ได้เหรอ

$PHP_SELF จะคืนค่าในรูป โฟลเดอร์จากรูทเว็บ/ชื่อไฟล์ที่ execute ในขณะนั้น
ต่างจาก __FILE__ จะคืนค่าเป็น
พาทภายในจนถึงไฟล์ที่มีคำสั่งนั้นอยู่

ผมพูดหมายถึงไฟล์ที่มีคำสั่งนั้นอยู่นะครับ ไม่ใช่ไฟล์ที่ ทำงาน (execute) อยู่
ดังนั้น __FILE__ จึงเหมาะในการเรียกพาทภายในมาก
เพราะแม้ไฟล์นั้นจะโดน include ดึงไป พาทมันที่คืนค่าจะถูกต้องเสมอ

ดังนั้นจึงใช้ __FILE__ แล้วถึงค่อยใช้ dirname เรียกเฉพาะพาทไม่ร่วมไฟล์

แนะนำให้เอาคำสั่งนี้ใส่ไว้ในไฟล์ที่อยู่ตายตัวอย่าง config

หวังว่าคำสั่งชุดนี้จะช่วยได้นะครับ  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: sealinda ที่ 12 มีนาคม 2007, 23:18:57
มารอเข้าเรียนค่ะ  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 14 มีนาคม 2007, 16:17:10
นึกไม่ออกว่าจะโพสไรดี เอาคำสั่งชุดนี้ละกันครับ

เคยมีหลายครั้งไหมที่อยากจัดการบทความที่มีทั้ง
ขึ้นบรรทัดใหม่บ้าง จัดคำไม่เป็นส่วนบ้าง เดี๋ยววรรคยาวๆ สั้นๆ

โค๊ด:
$pat[0] = "/^\s+/";
$pat[1] = "/\s{2,}/";
$pat[2] = "/\s+\$/";
$rep[0] = "";
$rep[1] = " ";
$rep[2] = "";
$str = '  Words with  lots      of  spaces    
very         problems';
$str = preg_replace($pat,$rep,$str);
// แสดงผล
"Words with lots of spaces very problems"


หวังว่าจะช่วยได้นะครับ  :D


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


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: pete ที่ 14 มีนาคม 2007, 16:21:10
อยากได้ script ลอกของชาวบ้านมาขายใน CB อ่ะคับ

พอจะมีมั๊ย
ตอนนี้กะลัง in trend เชียว ก๊ากๆๆ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 14 มีนาคม 2007, 16:49:07
ผมรู้แต่มีโครงการเขียนสคริปขยะเอาไปหลอกขายใน CB ก๊ากๆๆ

ถึงบอกว่าขยะ แต่คุ้มราคาแน่นอน  :lol:
แต่ไม่กล้าขายให้คนไทยเสียว เดี๋ยวรู้ไต๋กันหมด  :twisted:

















อะ ย้อเย่น  :lol:


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: sealinda ที่ 14 มีนาคม 2007, 17:10:04
อ้างจาก: "pete"
อยากได้ script ลอกของชาวบ้านมาขายใน CB อ่ะคับ

พอจะมีมั๊ย
ตอนนี้กะลัง in trend เชียว ก๊ากๆๆ


ไม่เห็นต้องถามหาสคริปเล้ยยยย

ก้อแค่ ก๊อปอันที่เค้าก๊อปมาขาย เอาไปขายต่อนั่นแหละ ง่ายดี  :twisted:  คลาสนี้ก้อไม่ต้องเรียนแล้ว  :twisted:  :twisted:  :twisted:


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 14 มีนาคม 2007, 17:16:34
เดี๋ยวก่อนกระทู้จะโดนเบี่ยงเบนไปซะก่อน

วันนี้อารมณ์ดีมากๆ (โปรเจ็คเดินหน้าด้วยดี แถมเพิ่งทำ engine ตัวใหม่เสร็จ)

เข้าเรื่อง จำสคริป Related จาก Google ได้ไหมครับ
ที่ผมจำกัดแจกแค่ราวๆ 30 คนอะ

ตอนนี้คิดอีกทีเอามาแจกเลยไว้ถาวรดีกว่า เพราะเท่าที่สำรวจ คนใช้มากกกว่า 60 คนแล้วมั้ง  :lol:

โค๊ด:
function ggkeyword($keyword) {
    $gg_result = file_get_contents("http://www.google.com/complete/search?hl=en&js=true&qu=".$keyword);
    $gg_reg = '/sendRPCDone\(frameElement, "(.*)", new Array\("(.*)"\), new Array\("(.*) results"\), new Array\(""\)\);/';

    preg_match($gg_reg, $gg_result, $keylist);

    $keyname = split('", "', $keylist[2]);
    $keyhits = split(' result(s*)", "', $keylist[3]);

    $keyhits = str_replace(",", "", $keyhits);

    return array($keyname, $keyhits);
}


วิธีใช้

โค๊ด:
$key = ggkeyword("test");

for($i=0;$i<10;$i++) {
    echo $key[0][$i]."=".$key[1][$i]."<br>";
}


หวังว่าจะได้ใช้ประโยชน์นะครับ  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: aomnaruk ที่ 15 มีนาคม 2007, 07:31:09
อ้างจาก: "sealinda"
อ้างจาก: "pete"
อยากได้ script ลอกของชาวบ้านมาขายใน CB อ่ะคับ

พอจะมีมั๊ย
ตอนนี้กะลัง in trend เชียว ก๊ากๆๆ


ไม่เห็นต้องถามหาสคริปเล้ยยยย

ก้อแค่ ก๊อปอันที่เค้าก๊อปมาขาย เอาไปขายต่อนั่นแหละ ง่ายดี  :twisted:  คลาสนี้ก้อไม่ต้องเรียนแล้ว  :twisted:  :twisted:  :twisted:


อ้างถึง
โบราณว่าไว้ "ไม่มีความเลวใด เลวกว่าการขโมยสคิปต์คนอื่นไปขายที่ คลิกแบงค์"
คำสอน: นารูโตะ นินจาจอมคาถา


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: ColdMoney ที่ 15 มีนาคม 2007, 09:13:57
อ้างจาก: "aomnaruk"
อ้างจาก: "sealinda"
อ้างจาก: "pete"
อยากได้ script ลอกของชาวบ้านมาขายใน CB อ่ะคับ

พอจะมีมั๊ย
ตอนนี้กะลัง in trend เชียว ก๊ากๆๆ


ไม่เห็นต้องถามหาสคริปเล้ยยยย

ก้อแค่ ก๊อปอันที่เค้าก๊อปมาขาย เอาไปขายต่อนั่นแหละ ง่ายดี  :twisted:  คลาสนี้ก้อไม่ต้องเรียนแล้ว  :twisted:  :twisted:  :twisted:


อ้างถึง
โบราณว่าไว้ "ไม่มีความเลวใด เลวกว่าการขโมยสคิปต์คนอื่นไปขายที่ คลิกแบงค์"
คำสอน: นารูโตะ นินจาจอมคาถา


กระทู้ hot ลามมาถึงนี่แล้วเหรอ เหอๆ  :lol:


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 15 มีนาคม 2007, 09:27:52
อ้ากกระทู้ผมมีมลทิน    :twisted:

วันนี้จะมาพูดถึงขั้นตอนคำสั่งการใช้ mysql กัน

เริ่มแรกจากการติดต่อฐานข้อมูลนะครับ เราจะใช้

$link = mysql_connect($dbHost, $dbUser, $dbPass);
mysql_select_db($dbName, $link);

โดยต้องมีตัวแปรตามนี้
$dbHost ปกติคือ localhost
$dbUser $dbPass ก็ user กะ pass
ส่วน $dbName คือชื่อของฐานข้อมูล


ต่อมาการปิดการติดต่อฐานข้อมูลก็ใช้
mysql_close($link);
ซึ่งควรทำเพราะเป็นการตัดระบบช่วยให้ความเร็วโดยร่วมดีขึ้น

ต่อมาการใช้ query ก็
$result = mysql_query("Query เบื้องต้น");

แล้วใช้คำสั่งนี้แปลงเป็น array
$result = mysql_fetch_assoc($result);

สอนสั้นๆ นะครับ
ใครอยากหาข้อมูลเพิ่มเชิญ php.net ครับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: HARRY ที่ 15 มีนาคม 2007, 11:46:14
เข้าสมัครเข้าเรียนด้วยคนครับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: ebay2day ที่ 15 มีนาคม 2007, 22:41:01
OH !! Mygod....


มึนตึบ  :shock:  :?  :(  :cry:


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 16 มีนาคม 2007, 00:54:42
บทความส่งท้ายครับ

กระทู้นี้ผมอาจหยุดอัพเดตยาว เพราะต้องทำแข่งกะคนอื่นบ้างแล้ว
(สรุป ฉันยังไม่ได้ทำ 555+)


อยากจะเป็น PHP ต้องทำอย่างไร
คำถามนี้คงเป็นกันทุกคนนะครับ เอาเนื้อๆ เลยล่ะกัน

ขั้นแรกสำรวจตัวเองก่อน
พื้นฐานคือ
1. เป็น html เข้าขั้นเชี่ยวชาญ
ถามว่าทำไมถึงต้องขนาดนั้น เพราะการเขียน php จะใช้ควบคู่กะ html
แบบ แยกส่วนกันเลยทีเดียว ดังนั้น คุณไม่โปร เอาให่โปรก่อนดีกว่า

2. เข้าใจพื้นฐานของการเป็นโปรแกรมเมอร์
ตัวแปร เงื่อนไน ตรรกะ ถูกผิด

3. เป็นคนช่างค้นคว้าทดลอง และประยุกต์สิ่งรอบข้าง
นี้เป็นพื้นของคนที่อยู่ในสายนี้ครับ

แล้วก็เริ่มเลย ไปหาหนังสือ php ใน se-ed มาอ่านแล้วลองทำเลยครับ

เท่านี้จริงๆ มันไม่ยากครับ เพราะผมเองเริ่มยังยากกว่าท่านๆ

ตอนผมหัด มันไม่มีหนังสือ php สักเล่ม มีแต่ php-nuke (ตอนนั้น 6.5)
เอามาหัดใช้จนเริ่มแกะมือ สุดท้ายพอเริ่มเป็น
ก็เอาหนังสือมาเพิ่มความชำนาญ ก็เลยรอดมาถึงบัดนี้

ลองดูนะครับ มันไม่ยากจริงๆ  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: เทมาเส็ก ที่ 16 มีนาคม 2007, 00:59:12
php ยากอ่า  :cry:


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: sealinda ที่ 16 มีนาคม 2007, 02:44:15
อ้างจาก: "EThaiZone"
บทความส่งท้ายครับ

กระทู้นี้ผมอาจหยุดอัพเดตยาว เพราะต้องทำแข่งกะคนอื่นบ้างแล้ว
(สรุป ฉันยังไม่ได้ทำ 555+)




อ่านะคุณน้อง สู้ๆ แล้วกันจ้า

ขอบคุณสำหรับความรู้ที่มาโพสต์ให้อ่านกันนะคะ  :D  :D  :P


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: rapeedu ที่ 16 มีนาคม 2007, 18:37:44
อยากเขียนสคริปทำเว็บของตัวเองให้เป็น link directory น่ะครับ คือผมมี folder และ file อยู่ในนั้น เช่น

Folder A มี a1.html, a2.html, a2.html
Folder B มี b1.html, b2.html

อยากเขียนสคริปที่ไปอ่าน folder และ ไฟล์มาจัดเป็น Directory ผลลัพธ์

A
a1 (htxx://a1.html) a2 (htxx://a2.html) a3 (htxx://a3.html)

B
b1 (htxx://b1.html) b2 (htxx://b2.html)


หรือถ้ามีสคริปสำเร็จแล้วก็จะดีมาก ๆ เลยคับ ผมทำ arbitrage แต่อยากจะเอาเว็บไป submit google ด้วยคับ เผื่อมี traffic หลงมา 555

ขอบคุณคับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 16 มีนาคม 2007, 18:55:36
สคริปแบบนี้คงจัดให้ไม่ได้ครับ แถมถ้าจะเขียนก็กินเวลา
แถมภายในไฟล์ก็ต้องมี format ถูกแบบ

คงต้องให้คุณเขียน php เป็น ไม่ก็จ้างคนเขียนครับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: iamnewbies ที่ 16 มีนาคม 2007, 18:59:11
เพิ่งซื้อหนังสือ โคตรเซียน php มาอ่าน 555 หน้าเตอะเลย


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: youcanberich ที่ 16 มีนาคม 2007, 19:25:31
คุณ ethaizone จะพักยาว เสียดายจัง  :?  แต่ก็ขอบคุณมากครับ เดี๋ยวจะค่อยติดตามเรื่อยๆ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: NongNatty ที่ 16 มีนาคม 2007, 21:25:39
อ้างจาก: "EThaiZone"
เดี๋ยวก่อนกระทู้จะโดนเบี่ยงเบนไปซะก่อน

วันนี้อารมณ์ดีมากๆ (โปรเจ็คเดินหน้าด้วยดี แถมเพิ่งทำ engine ตัวใหม่เสร็จ)

เข้าเรื่อง จำสคริป Related จาก Google ได้ไหมครับ
ที่ผมจำกัดแจกแค่ราวๆ 30 คนอะ

ตอนนี้คิดอีกทีเอามาแจกเลยไว้ถาวรดีกว่า เพราะเท่าที่สำรวจ คนใช้มากกกว่า 60 คนแล้วมั้ง  :lol:

โค๊ด:
function ggkeyword($keyword) {
    $gg_result = file_get_contents("http://www.google.com/complete/search?hl=en&js=true&qu=".$keyword);
    $gg_reg = '/sendRPCDone\(frameElement, "(.*)", new Array\("(.*)"\), new Array\("(.*) results"\), new Array\(""\)\);/';

    preg_match($gg_reg, $gg_result, $keylist);

    $keyname = split('", "', $keylist[2]);
    $keyhits = split(' result(s*)", "', $keylist[3]);

    $keyhits = str_replace(",", "", $keyhits);

    return array($keyname, $keyhits);
}


วิธีใช้

โค๊ด:
$key = ggkeyword("test");

for($i=0;$i<10;$i++) {
    echo $key[0][$i]."=".$key[1][$i]."<br>";
}


หวังว่าจะได้ใช้ประโยชน์นะครับ  :D


ไม่มีตรวจสอบก่อนหรือไงครับ

Warning: file_get_contents(http://www.google.com/complete/search?hl=en&js=true&qu=test) [function.file-get-contents]: failed to open stream: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in xxxxxxxxxxxxxxxxxxxxxxxxxxx

ทำไงต่อหล่ะครับ

ใครจะเอาไปใช้ ต้องแปลงเยอะแหล่ะครับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 16 มีนาคม 2007, 21:54:18
ใครว่าไม่ทดสอบละครับ ทดสอบเป็นชาติแล้ว บัดนี้ยังใช้งานได้อยู่ครับ

สคริปของคุณ Tee++; ที่ขาย ก็ใช้ระบบค้นหาคีย์เวิร์ดของผมเนี่ยแหละ

ให้คุณ Tee++; มาคอนเฟิร์มก็ได้ว่าสคิรปผมมันดีหรือห่วย

และอีกอย่าง คืนค่าเป็น array เนี่ย ผมว่าคลาสสิคสุดๆ แล้วนะ
หรือว่าควรคืนเป็น object ดีไหมเนี่ย เป็นฟังค์ชั่นแค่ฝังแล้วเรียกใช้ ผมว่ามันง่ายแล้วนะครับ  :?

แล้วสุดท้าย error ที่ขึ้นคือมันมีปัญหาเรียกไฟล์ไม่ได้ภายในเวลาที่สมควรครับ
มันหมายถึงว่า โฮสที่คุณใช้รันมันอืดหรือเน่าแน่ๆ ครับ
error แบบนี้เกิดจากการ timeout ก่อนเวลาครับ

ตัวอย่างเว็บ (http://72.14.235.104/search?q=cache:DjNvOF_Vyj0J:www.ispcon.com/+%5Bfunction.file-get-contents%5D:+failed+to+open+stream:+A+connection+attempt+failed+because+the+connected+party+did+not+properly+respond+after+a+period+of+time,+or+established+connect&hl=th&ct=clnk&cd=1) error เพราะ GG มาบ่อยจนเกินสภาพทราฟิคติดขัด

ถ้ามัน error เพราะ regular expression ที่ผมเขียนมันผิดผมจะไม่เถียงสักคำ -*-

เทสเป็นชั่วโมงนะ ถ้ามีปัญหาคงมีคนอีก 30 กว่าคนมาถามให้ปวดหัวแล้ว  :lol:


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: amaudy ที่ 17 มีนาคม 2007, 04:03:33
ยังใช้ดีอยู่ครับ


หัวข้อ: Overloading and overriding
เริ่มหัวข้อโดย: POM ที่ 21 มีนาคม 2007, 12:36:17
มีคำถามครับ overloading กับ overriding อ่ะครับ ต่างกันยังไง
วันนั้นไปสัมพาษณ์เจอข้อสอบตอบไม่ได้


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Tee++; ที่ 21 มีนาคม 2007, 13:32:58
อ้างถึง
Warning: file_get_contents([url]http://www.google.com/complete/search?hl=en&js=true&qu=test[/url]) [function.file-get-contents]: failed to open stream: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in xxxxxxxxxxxxxxxxxxxxxxxxxxx


Confirm ครับโคดตัวนี้ใช้ดีมากคืนค่าเร็วเพราะต้นฉบับบมีแต่ Text แต่ถ้าอยากให้ได้ผลออกมามากกว่า 10 คำอาจจะต้อง modify กันเล็กน้อย

http://www.google.com/complete/search?hl=en&js=true&qu=test

ส่วนไอ้ Error นั่นอ่ะ คิดว่าเป็นที่ hosting ไม่อนุญาติคำสั่ง file_get_contents ให้เปลี่ยนมาใช้ cURL ดึงค่าแทนจะแก้ปัญหานี้ได้ทันที

http://curl.haxx.se/


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: ebay2day ที่ 21 มีนาคม 2007, 18:09:41
วานผู้รู้ช่วยหน่อยครับ

server ล่ม พอทำงานได้เจอปัญหานี้คับ

Could not obtain post/user information.

DEBUG MODE

SQL Error : 1030 Got error 134 from storage engine

SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_avatar_type, u.user_allowavatar, u.user_allowsmile, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid FROM phpbb_posts p, phpbb_users u, phpbb_posts_text pt WHERE p.topic_id = 6719 AND pt.post_id = p.post_id AND u.user_id = p.poster_id ORDER BY p.post_time ASC LIMIT 0, 20

Line : 394
File :
 


แล้วก็เวลาโพสก็เจอแบบนี้


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 21 มีนาคม 2007, 18:55:00
เรื่อง 2 over มีคนเคยถามมาแล้ว

โค๊ด:
http://www.narisa.com/forums/lofiversion/index.php?t8265.html



ส่วน error 134 ฐานข้อมูลเจ๊งครับ
สั่งซ่อมแซมฐานข้อมูลก่อนครับ

แต่เอาให้ชัวร์ สั่งตรวจสอบดูก่อบครับ
จะได้รุ้ว่ามันเป็นแบบนั้นหรือเปล่า  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: ebay2day ที่ 21 มีนาคม 2007, 18:56:43
อันนี้เจอตอนโพสคับ...ช้วยด้วยคับ

Error in posting

DEBUG MODE

SQL Error : 1062 Duplicate entry '102985' for key 1

INSERT INTO phpbb_posts (topic_id, forum_id, poster_id, post_username, post_time, poster_ip, enable_bbcode, enable_html, enable_smilies, enable_sig) VALUES (6700, 7, 3, '', 1174478129, '3a091bec', 1, 0, 1, 1)

Line : 271
File : c:\webhosts\fishing2day_com\WWW\board\includes\functions_post.php


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 21 มีนาคม 2007, 19:00:09
อันนั้นมัน ข้อมูล record มันซ้ำครับ

ให้ไปแก้เลขอินเด็กในตารางนั้นครับ
ปรับเพิ่มสัก 1 หรือ 2 ก็ได้
(auto number อะ)

หรือผมว่าลองสั่ง repair ดูก่อยคัรบ เผื่อหาย
(ไม่แน่ใจ repair ช่วยแก้เลขได้ไหม เหอๆ)


หัวข้อ: วิธีการทำผลการค้นหาแสดงเป็น %
เริ่มหัวข้อโดย: EThaiZone ที่ 27 มีนาคม 2007, 08:06:47
กลับมาอัพเดตเพิ่มสักเรื่องละกัน

วิธีการทำผลการค้นหาแสดงเป็น %

ผมจะอธิบายแนวคิดนะครับ มันง่ายๆ

ขั้นแรกเราต้องมีผลการค้นหาในรูป array ก่อน ซึ่งถูกเรียงจากมากไปหาน้อยแล้ว
(ใช้พวก sort() ก็ได้)
ยกตัวอย่างนะครับ

โค๊ด:
$data = array(
"game" => "468",
"psp" => "399",
"dvd" => "271",
"cd" => "254",
"links" => "178",
"jump" => "26"
);


ขั้นแรก ให้เก็บค่าที่มากสุดไว้เป็นเกณฑ์ครับ ให้ใช้ฟังค์ชั่น max() ช่วย

โค๊ด:
$max = max($data);


ต่อมาใช้ foreach() ในการวนให้ครบทั้งหมดใน array
แล้วเขียนระบบคำนวณ % เทียบเพิ่มลงไป
จะได้ตัวอย่างแบบนี้ครับ

โค๊ด:
foreach($data as $key => $value) {
$pc = sprintf("%0.2f", ($value/$max)*100);
echo $key." - Found in ".$value."words [".$pc."%]<br/>";
}


โดยหัวใจจะอยู่ที่
โค๊ด:
$pc = sprintf("%0.2f", ($value/$max)*100);


โดยให้คำสั่ง sprintf() ช่วยแสดงผลแบบเฉพาะแล้วคำนวณหา %
แบบสมัยที่เราๆ ท่านๆ เรียนตอนประถมแหละครับ
ค่าตอนนี้ หาร ค่าที่มากที่สุด คูณ 100

เราก็จะได้ผลแบบ % ได้ครับ

ตัวอย่างแบบเต็ม

โค๊ด:
<?
$data = array(
"game" => "468",
"psp" => "399",
"dvd" => "271",
"cd" => "254",
"links" => "178",
"jump" => "26"
);

$max = max($data);

foreach($data as $key => $value) {
$pc = sprintf("%0.2f", ($value/$max)*100);
echo $key." - Found in ".$value."words [".$pc."%]<br/>";
}
?>


ผลลัพท์ที่ได้

โค๊ด:
game - Found in 468words [100.00%]
psp - Found in 399words [85.26%]
dvd - Found in 271words [57.91%]
cd - Found in 254words [54.27%]
links - Found in 178words [38.03%]
jump - Found in 26words [5.56%]


ดูเจ๋งไหมครับ ^^


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 19 เมษายน 2007, 21:19:58
อัพเดตสักหน่อย

พอดีมีคำถามจาก msn ว่า..
อ้างถึง
เวลาตัดทดศนิยมด้วยฟังค์ชั่น round มันจะปัดเศษด้วย ทำอย่างไรถึงจะไม่ให้มันปัดเศษ


วิธีจัดการเรื่องนี้
Step1
ให้มองที่จุดต่างของข้อมูลดิบก่อน
ซึ่งก็คือเลขมีทศนิยม โดยจุดต่างอยู่ที่ . ดังนั้น
เราก็ใช้ explode() ในการแยกส่วน

Step2
เมื่อค่าถูกแยกเป็น 2 ส่วน
เราก็ใช้ฟังค์ชั่นที่ตัดข้อมูลโดยนับช่วงตัวอักษร
ซึ่งก็คือ substr()

เราก็จะได้แบบนี้ครับ

โค๊ด:
$num = "55646.4565";
$n_list = explode(".", $num); //Step1
$num = $n_list[0].".".substr($n_list[1], 0, 2); //Step2

echo $num;


หมายเหตุ
ผมพยายามอธิบายแนวคิดให้ฟัง หวังว่าจะเข้าใจนะครับ
ไม่อยากน้ำเยอะเท่าไรหรอกครับ


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: aomnaruk ที่ 20 เมษายน 2007, 09:37:20
อ้างจาก: "EThaiZone"
เดี๋ยวก่อนกระทู้จะโดนเบี่ยงเบนไปซะก่อน

วันนี้อารมณ์ดีมากๆ (โปรเจ็คเดินหน้าด้วยดี แถมเพิ่งทำ engine ตัวใหม่เสร็จ)

เข้าเรื่อง จำสคริป Related จาก Google ได้ไหมครับ
ที่ผมจำกัดแจกแค่ราวๆ 30 คนอะ

ตอนนี้คิดอีกทีเอามาแจกเลยไว้ถาวรดีกว่า เพราะเท่าที่สำรวจ คนใช้มากกกว่า 60 คนแล้วมั้ง  :lol:

โค๊ด:
function ggkeyword($keyword) {
    $gg_result = file_get_contents("http://www.google.com/complete/search?hl=en&js=true&qu=".$keyword);
    $gg_reg = '/sendRPCDone\(frameElement, "(.*)", new Array\("(.*)"\), new Array\("(.*) results"\), new Array\(""\)\);/';

    preg_match($gg_reg, $gg_result, $keylist);

    $keyname = split('", "', $keylist[2]);
    $keyhits = split(' result(s*)", "', $keylist[3]);

    $keyhits = str_replace(",", "", $keyhits);

    return array($keyname, $keyhits);
}


วิธีใช้

โค๊ด:
$key = ggkeyword("test");

for($i=0;$i<10;$i++) {
    echo $key[0][$i]."=".$key[1][$i]."<br>";
}


หวังว่าจะได้ใช้ประโยชน์นะครับ  :D


ทำยังไงให้ได้ผลลัพธ์มากกว่า 10 อะครับ ผมแก้จนอ้วกแตกยังไม่ได้เลยครับ:roll:  :roll:


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 20 เมษายน 2007, 11:15:34
ทำไม่ได้ครับ เพราะข้อมูลต้นทางจาก google มันมาแค่ 10  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: aomnaruk ที่ 20 เมษายน 2007, 11:33:29
อ้างจาก: "EThaiZone"
ทำไม่ได้ครับ เพราะข้อมูลต้นทางจาก google มันมาแค่ 10  :D


ใช้ whlie เอาข้อมูลใน array มาวนลูปได้เปล่าครับ
เพราะว่าเราเก็บข้อมูลไว้ใน array เราก็ดึงข้อมูล 10 อันแรกที่ได้รับมาส่งไปคิวรี่อีกแล้วเราก็ได้อีก 100 keywordวนไปเรี่อยๆจนกว่าจะถึงลิมิตอย่างนี้ได้เปล่าครับ :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 20 เมษายน 2007, 11:50:11
ทำได้ครับ

เมื่อก่อนผมเองก็เคยกะจะเขียนเหมือนกัน

อย่างดึงค่า psp มา 10
แล้วพอมันคืนค่า (สมมุตินะ)
psp cheat
psp hack
psp tools
psp gadget

ก็ตัดเอา psp ออกเหลือแต่  cheat hack tools และ gadget
ก็เอามาค้นใหม่
อะไรแบบนี้อะครับ เคยนึกไว้แต่ไม่ได้เขียน

ตอนนี้ที่เล็งคือระบบค้นคีย์ของ adword
เพราะเห็นมีคนแกะได้ ซึ่งก็คือตัว hypervre
มันเอาคีย์เยอะๆ มาจาก adword ครับ  :D


หัวข้อ: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 10 พฤษภาคม 2007, 08:39:09
กลับมาอัพเดต

การทำ sitemap ให้อยู่ในรูป gzip

เหมาะกับคนทำปั่นๆ sitemap ได้ไม่บวมครับ
เพราะ 1 sitemap ใส่ได้สูงสุด 50000 url
แต่ขนาด url มันอาจทำให้โหลดนาน

แบบแรก อ่านไฟล์เดิมแล้วบีบอัดเป็นไฟล์ใหม่
โค๊ด:
<?
$data = file_get_contents("sitemap.xml");
$zp = gzopen("sitemap.xml.gz", "w9");
gzwrite($zp, $data);
gzclose($zp);
?>

แบบ 2 ทำตัวเองเป็น gzip
โค๊ด:
<?
$out = file_get_contents("sitemap.xml");
$out = gzencode($out, 9);

header("Content-Length: ".strlen($out));
header("Content-Type: application/xml");
header("Content-Encoding: gzip");
echo $out;
?>


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: jansanfong ที่ 20 มิถุนายน 2007, 02:21:18
การแปลงจาก ACII Code --> UTF-8 ดีครับ  :)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 18 กรกฎาคม 2007, 10:23:20
การตั้งค่า Parameter ในสภาพติดลบ

วันนี้มาอัพเดตเกร็ดที่หลายคนมองข้ามกันไป
ใน php ฟังค์ชั่นจะมีลักษระการใช้งานแนวว่า

function_name(parameter1, parameter2, ...);

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

ยกตัวอย่าง สัก 1 อัน (เวลาไม่พอ เขียนได้นิดเดียว)

อย่างฟังค์ชั่น round ที่ใช้ในการปัดเศษทดนิยม เช่น

โค๊ด:
echo round(1.95583, 2); 

จะได้ค่ากลับมาคือ 1.96 เพราะ parameter ส่วน precision (ตัวเลขหลังจุดทศนิยม)
ซึ่งปกติมีค่าเป็น 0 ได้ถูกกำหนดเป็น 2 ทำให้มีทศนิยม 2 ตำแหน่ง

โค๊ด:
echo round(1955654.83, -4); 

ค่าจะถูกคืนมาเป็น 1960000 ซึ่งตามในความหมายคือ
ค่า -4 ก็คือ ย้อนกลับจากจุด ทศนิยมไป 4 ทำให้เลขเป็นสภาพเต็มหน่วย คือปัดหน่วยที่โดนสั่งให้เป็น 0

เห็นไหมครับว่าผลมันจะตรงกันข้ามเลย
ยังมีอีกหลายฟังค์ชั่นให้ลองกัน
ลองทำดูครับ มันช่วยเราได้หลายแง่เลย  :)

/me ขออนุญาตใช้สิทธิ์ม็อด ย้ายไปห้องโปรแกรมมิ่งนะครับ + ปักหมุดไว้หน่อยนะ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 18 กรกฎาคม 2007, 10:29:49
แนะนำทูลอีกตัวหนึ่ง จากพี่ Tee++; แนะนำอีกแล้ว

http://jquery.com/

ลองไปใช้ดูครับ แล้วคุณจะรู้ว่า ทำ ajax ให้กูเกิ้ลอินเด็กได้ด้วย มันทำกันยังไง ^^

เป็นเหมือนคลาสตัวหนึ่งของ javascript ให้เขียนใช้งานกันครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 24 กรกฎาคม 2007, 23:29:27
การทำรายการที่มี comma คั่น

สำหรับหลายคนที่อยากทำการแสดงผลค่าในรูป , คั่นแต่ละอัน
ถ้าในกรณีเป็นแค่คำธรรมดา แนะนำให้ใช้
implode() ในการสร้างคำ

แต่สำหรับคนทำเป็นลิงค์ ใช้วิธีนี้ก็ได้ครับ

โค๊ด:
$list = array("ant", "boy", "cat");

foreach($list as $key => $var) {
if($key != 0) $show .= ", ";
$show .= '<a href="'.$var.'.html">'.$var.'</a>';
}

echo $show;

ลองประยุกต์ดูนะครับ

การหารเอาเศษ

การหารเอาเศษเป็นสิ่งที่หลายคนมักมองข้ามไป
แต่หลายคนไม่รู้ว่าความสามารถมันเหลือล้ำกว่าบวกลบคูณหารธรรมดาซะอีก

ใช้แยกเลขคู่และคี่
โค๊ด:
$num = 8;
if($num%2 == 0)
echo "เลขคู่";
else
echo "เลขคี่";

ใช้กำหนดเพดานสูงสุดของตัวเลข
โค๊ด:
$num = array(102,650,985,751,356,415);
$limit = 100;
foreach($num as $key => $var) {
$num[$key] %= 100;
}
print_r($num);

ความจริงมีมากกว่านี้ แต่ขึ้นอยู่กับทักษะนะครับ
หมั่นใช้แล้วมันจะให้คำตอบกับท่านเอง

 :)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 29 กรกฎาคม 2007, 12:57:03
การเรียกรายการข้อความโดยไม่เกิดปัญหา

หลายคนมักใช้คำสั่งในการเรียกรายการคำ เช่น รายการคีย์เวิร์ดกัน
ซึ่งเหมาะกะขาปั่น โดยฟังค์ชั่นที่เราๆ ใช้กันคือ file()
โดยจะดึงค่าในไฟล์แล้วคืนค่าออกมาในลักษณะอาเรย์
โดย 1 คีย์ต่อ 1 บรรทัดในนั้น

แต่หลายคนเมื่อใช้คงมีหลายครั้งที่เจอกะ Invisible Space (ช่างว่างที่มองไม่เห็น)
โดยคุณจะเห็นใน IE หรืออื่นๆ ว่ามีช่องว่าง แต่คุณจะ view source ไม่เจอ และไล่ดูจากในโค้ดไม่เจอ

ยกตัวอย่างเหตุการณ์หนึ่งจาก MSN ระหว่างผมกะพี่ปุ๊ก Pook ณ Ecomhost
(ตัดทอนออกบางส่วนตามความเหมาะสม)

อ้างถึง
(21:10)    นายกระปุก: ผมแก้เหลือแค่นี้อ่ะครับ แต่ดันมี blank ข้างหน้า
(21:10)    นายกระปุก: เซ็งเลย
(21:11) EThaiZone.Com :: อ้อ
(21:11) EThaiZone.Com :: รุแล้ว
(21:11) EThaiZone.Com :: สาเหตุมาจากการใช้ file() เพรียวๆ ครับ
(21:11) EThaiZone.Com :: $list=str_replace(array("\r", "\n"), "", file('test.txt'));
(21:11) EThaiZone.Com :: ผมเคยเป็นแล้วโดนบ่อย
(21:12)    นายกระปุก: อ่อ
(21:12)    นายกระปุก: ต้องใช้ $list=str_replace(array("\r", "\n"), "", file('test.txt')); งี้เหรอครั
(21:12) EThaiZone.Com :: ครับ
(21:13) EThaiZone.Com :: ลองดูเลย รับรอง bloank ปริศนาหายขาดครับ
(21:13) EThaiZone.Com :: กำ เผลอกดตัว o  *-*
(21:13)    นายกระปุก: เยี่ยม
(21:13)    นายกระปุก: หายจริงๆ

เรื่องของเรื่องอยู่ที่ เวลาเรากดขึ้นบรรทัดใหม่ใน notepad
มันจะใส่ \r\n ลงไปในระบบ แต่พอเราใช้คำสั่ง file() มันจะเหมือนใช้ file_get_contents() + explode()
โดยมันจะตัด \r ทิ้งไป ทำให้เหลือแต่ \n เลยทำให้เกิดช่องว่างปริศนา

ดังนั้น เราสามารถใช้  str_replace() ตัดเอา \n ออกไปได้คัรบ ก็จะหาย

ถ้าเรามาเขียนเป้นฟังค์ชั่นใช้งานง่ายๆ ก็ได้เป็น

โค๊ด:
function file_get_array($filename) {
//ตรวจการมีอยู่ของไฟล์ ถ้าไม่มีคืนค่า false
if(!file_exists($filename)) return false;
//ใช้คำสั่ง file แล้วตัด \n ออก
$array = str_replace(array("\n"), "", file($filename));
//คืนค่าอาเรย์ที่ได้
return $array;
}

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

 :)

อัพเดต

อีกวิธีด้วยคำสั่ง trim() + array_walk() (เป็นคำสั่งให้วนลูปอาเรย์แล้วทำงานในฟังค์ชั่นนั้นๆ)

โค๊ด:
function trim_value(&$value) 
{
    $value = trim($value);
}

$array = trim(file($filename));

array_walk($array, 'trim_value');

Credit: PHP.NET
ลองดูครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 03 สิงหาคม 2007, 15:04:35
ตอนพิเศษ : Loop in the loop

หลายท่านเคยต้องการเขียนลูปเรียกซ้อนลูปไหม
ผมไม่ต้องการรู้หรอก (คนอ่าน :  :o)
แต่ผมเคยคิดทำเหมือนกัน

เอาไว้ทำอะไร.. เขียน decoder ครับ (คุกเห็นๆ)
สมมุติผมต้องการให้มันไล่อ่านโฟลเดอร์ทั้งหมดที่ลึกเข้าไป

อืม.... งั้นงานนี้ก็ต้องวนลูปเนอะ
แต่มันซ้อนเยอะอะ ทำไงดี

งานนี้เลยเป็นที่มาของตอนพิเศษ Loop in the loop  8) (เสียง : แต่น แต้น แต๊นน~~~)

พิเศษยังไง ง่ายๆ ครับ
ผมจะไม่อธิบาย เอาโค้ดไปอ่านกันเอาเอง จบข่าว  :o

โค๊ด:
<?
$mainpath = dirname(__FILE__)."/";

function getdir($path) {
$flist = opendir($path);
$list = array();
while (false !== ($mfile = readdir($flist))) {
$list = array_merge((array)$list, (array)$mfile);
}
sort($list);
array_splice($list, 0, 2);
return $list;
}

function checkdir($path) {
$list = getdir($path);
foreach($list as $var) {
if(is_dir($path.$var)) {
//แสดงว่าเปิดโฟลเดอร์ไหน
echo "<br/><b>Dir :</b> ".$path.$var."/<br/>";
//ตรงนี้มันอะไรน้อ อิๆ
checkdir($path.$var."/");
} else {
//แสดงชื่อไฟล์
echo $path.$var."<br>";
}
}
}

checkdir($mainpath."");
?>

เทคนิคแถมท้าย
ถ้าท่านต้องการความวินาศสันตะโร + สะใจแก่โฮสของท่าน
กรุณาแก้ echo $path.$var."<br>";
ให้เป็น unlink($path.$var); แล้วนำไปรันที่รูทของโฮสที่ท่านใช้

รับรอง ใช้งานได้ผล 1000% ไฟล์ทุกท่านจะหลายเกลี้ยงเหลือแต่โฟลเดอร์ เหอๆ
แบบว่าจะลบทั้งทีลบแต่ไฟล์ ไม่ลบโฟลเดอร์ 555+
(พูดแก้หน้า ความจริงคือขี้เกียจเขียนระบบลบโฟลเดอร์เพิ่ม -*- )


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: harmonic ที่ 03 สิงหาคม 2007, 15:39:08
เยี่ยมครับ ติดตามอ่านอยู่  8)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: guy852 ที่ 03 สิงหาคม 2007, 15:52:52
พี่โจ้คะ วันนี้ไม่ออนเอ็มเอสเอ้นเหรอ น้องกายรออยู่  :-[

/me อย่า quote โดยไม่จำเป็นครับ =__=" (ไม่ได้เกี่ยวกะที่โพสเลย เหอๆ)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: guy852 ที่ 03 สิงหาคม 2007, 22:05:17
พี่โจ้คะ วันนี้ไม่ออนเอ็มเอสเอ้นเหรอ น้องกายรออยู่  :-[

/me อย่า quote โดยไม่จำเป็นครับ =__=" (ไม่ได้เกี่ยวกะที่โพสเลย เหอๆ)


 :o :o :o :o :o :o :o :o :o :o
อำนาจมืด
 :o :o :o :o :o :o :o :o :o :o


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: viking ที่ 03 สิงหาคม 2007, 23:34:53
เป็นกระทู้ที่ดีมากๆ ครับ ตามอ่านเรื่อยๆ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: lowprofile ที่ 09 สิงหาคม 2007, 01:23:05
การใช้ cURL แทน file_get_contents ครับ แถมด้วยการปลอมตัวเป็น browser เพื่อหลอก server ด้วย

ยกตัวอย่างด้วย script ของคุณ EThaiZone อันนี้แล้วกันครับ
โค๊ด:
function ggkeyword($keyword)
{
    $gg_result = file_get_contents("http://www.google.com/complete/search?hl=en&js=true&qu=".$keyword);
    $gg_reg = '/sendRPCDone\(frameElement, "(.*)", new Array\("(.*)"\), new Array\("(.*) results"\), new Array\(""\)\);/';
    preg_match($gg_reg, $gg_result, $keylist);
    $keyname = split('", "', $keylist[2]);
    $keyhits = split(' result(s*)", "', $keylist[3]);
    $keyhits = str_replace(",", "", $keyhits);
    return array($keyname, $keyhits);
}

ถ้าต้องการเพิ่มให้ดูข้อมูลด้วย cURL ได้ก็เปลี่ยนเป็น
โค๊ด:

function ggkeyword($keyword)
{
    $gg_url = "http://www.google.com/complete/search?hl=en&js=true&qu=".$keyword;
    $gg_result = _get_data($url);
    $gg_reg = '/sendRPCDone\(frameElement, "(.*)", new Array\("(.*)"\), new Array\("(.*) results"\), new Array\(""\)\);/';
    preg_match($gg_reg, $gg_result, $keylist);
    $keyname = split('", "', $keylist[2]);
    $keyhits = split(' result(s*)", "', $keylist[3]);
    $keyhits = str_replace(",", "", $keyhits);
    return array($keyname, $keyhits);
}

function _get_data($url)
{
    if (function_exists('curl_init'))
    {
        $agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)"; // ค่า agent ของ browser ที่เราจะปลอมตัว
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_USERAGENT, $agent); // ปลอมตัวเรียบร้อย
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec ($ch);
        curl_close ($ch);
    }
    else
    {
        $result = file_get_contents($url);
    }
    return $result;
}


ประมาณนี้ละครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: bankkungz ที่ 10 สิงหาคม 2007, 01:39:22
อัพเรื่อยๆเลยครับ

จะตามอ่านครับ  8)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: lowprofile ที่ 10 สิงหาคม 2007, 15:54:36
หา agent มาให้เพิ่มเติมครับ ( Agent ของ bot ล้วนๆ / 1 บรรทัดต่อ 1 agent )

โค๊ด:
ia_archiver
Mozilla/2.0 (compatible; Ask Jeeves/Teoma)
Baiduspider ( http://www.baidu.com/search/spider.htm)
GameSpyHTTP/1.0
Gigabot/2.0
Googlebot/2.1 (+http://www.google.com/bot.html)
Mozilla/5.0 (compatible; googlebot/2.1; +http://www.google.com/bot.html)
Googlebot-Image/1.0
Mozilla/4.0 (compatible; grub-client-1.4.3; Crawl your own stuff with http://grub.org) Mozilla/4.0 (compatible; grub-client-2.3)
Mozilla/3.0 (Slurp/si; [email protected]; http://www.inktomi.com/slurp.html)
msnbot/1.0 (+http://search.msn.com/msnbot.htm)
OmniExplorer_Bot/6.70 (+http://www.omni-explorer.com) WorldIndexer
Scooter-3.2.EX
W3C_Validator/1.432.2.10
Jigsaw/2.2.5 W3C_CSS_Validator_JFouffa/2.0
Wget/1.9
Mozilla/5.0 (compatible; Yahoo! Slurp;http://help.yahoo.com/help/us/ysearch/slurp)
Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)
Yahoo!-MMCrawler
Yahoo!-MMCrawler/3.x (mms dash mmcrawler dash support at yahoo dash inc dot com)

เอา bot's ip ไปด้วยเลยครับ จะได้ครบสูตร แต่ผมปลอม ip ไม่เป็นแฮะ ใครรู้ช่วยสอนหน่อยครับ
โค๊ด:
209.185.108
209.185.253
209.85.238.11
216.239.33.96
216.239.33.97
216.239.33.98
216.239.33.99
216.239.37.98
216.239.37.99
216.239.39.98
216.239.39.99
216.239.41.96
216.239.41.97
216.239.41.98
216.239.41.99
216.239.45.4
216.239.46
216.239.51.96
216.239.51.97
216.239.51.98
216.239.51.99
216.239.53.98
216.239.53.99
216.239.57.96
216.239.57.97
216.239.57.98
216.239.57.99
216.239.59.98
216.239.59.99
216.33.229.163
64.233.173.193
64.233.173.194
64.233.173.195
64.233.173.196
64.233.173.197
64.233.173.198
64.233.173.199
64.233.173.200
64.233.173.201
64.233.173.202
64.233.173.203
64.233.173.204
64.233.173.205
64.233.173.206
64.233.173.207
64.233.173.208
64.233.173.209
64.233.173.210
64.233.173.211
64.233.173.212
64.233.173.213
64.233.173.214
64.233.173.215
64.233.173.216
64.233.173.217
64.233.173.218
64.233.173.219
64.233.173.220
64.233.173.221
64.233.173.222
64.233.173.223
64.233.173.224
64.233.173.225
64.233.173.226
64.233.173.227
64.233.173.228
64.233.173.229
64.233.173.230
64.233.173.231
64.233.173.232
64.233.173.233
64.233.173.234
64.233.173.235
64.233.173.236
64.233.173.237
64.233.173.238
64.233.173.239
64.233.173.240
64.233.173.241
64.233.173.242
64.233.173.243
64.233.173.244
64.233.173.245
64.233.173.246
64.233.173.247
64.233.173.248
64.233.173.249
64.233.173.250
64.233.173.251
64.233.173.252
64.233.173.253
64.233.173.254
64.233.173.255
64.68.80
64.68.81
64.68.82
64.68.83
64.68.84
64.68.85
64.68.86
64.68.87
64.68.88
64.68.89
64.68.90.1
64.68.90.10
64.68.90.11
64.68.90.12
64.68.90.129
64.68.90.13
64.68.90.130
64.68.90.131
64.68.90.132
64.68.90.133
64.68.90.134
64.68.90.135
64.68.90.136
64.68.90.137
64.68.90.138
64.68.90.139
64.68.90.14
64.68.90.140
64.68.90.141
64.68.90.142
64.68.90.143
64.68.90.144
64.68.90.145
64.68.90.146
64.68.90.147
64.68.90.148
64.68.90.149
64.68.90.15
64.68.90.150
64.68.90.151
64.68.90.152
64.68.90.153
64.68.90.154
64.68.90.155
64.68.90.156
64.68.90.157
64.68.90.158
64.68.90.159
64.68.90.16
64.68.90.160
64.68.90.161
64.68.90.162
64.68.90.163
64.68.90.164
64.68.90.165
64.68.90.166
64.68.90.167
64.68.90.168
64.68.90.169
64.68.90.17
64.68.90.170
64.68.90.171
64.68.90.172
64.68.90.173
64.68.90.174
64.68.90.175
64.68.90.176
64.68.90.177
64.68.90.178
64.68.90.179
64.68.90.18
64.68.90.180
64.68.90.181
64.68.90.182
64.68.90.183
64.68.90.184
64.68.90.185
64.68.90.186
64.68.90.187
64.68.90.188
64.68.90.189
64.68.90.19
64.68.90.190
64.68.90.191
64.68.90.192
64.68.90.193
64.68.90.194
64.68.90.195
64.68.90.196
64.68.90.197
64.68.90.198
64.68.90.199
64.68.90.2
64.68.90.20
64.68.90.200
64.68.90.201
64.68.90.202
64.68.90.203
64.68.90.204
64.68.90.205
64.68.90.206
64.68.90.207
64.68.90.208
64.68.90.21
64.68.90.22
64.68.90.23
64.68.90.24
64.68.90.25
64.68.90.26
64.68.90.27
64.68.90.28
64.68.90.29
64.68.90.3
64.68.90.30
64.68.90.31
64.68.90.32
64.68.90.33
64.68.90.34
64.68.90.35
64.68.90.36
64.68.90.37
64.68.90.38
64.68.90.39
64.68.90.4
64.68.90.40
64.68.90.41
64.68.90.42
64.68.90.43
64.68.90.44
64.68.90.45
64.68.90.46
64.68.90.47
64.68.90.48
64.68.90.49
64.68.90.5
64.68.90.50
64.68.90.51
64.68.90.52
64.68.90.53
64.68.90.54
64.68.90.55
64.68.90.56
64.68.90.57
64.68.90.58
64.68.90.59
64.68.90.6
64.68.90.60
64.68.90.61
64.68.90.62
64.68.90.63
64.68.90.64
64.68.90.65
64.68.90.66
64.68.90.67
64.68.90.68
64.68.90.69
64.68.90.7
64.68.90.70
64.68.90.71
64.68.90.72
64.68.90.73
64.68.90.74
64.68.90.75
64.68.90.76
64.68.90.77
64.68.90.78
64.68.90.79
64.68.90.8
64.68.90.80
64.68.90.9
64.68.91
64.68.92
66.249.64
66.249.65
66.249.66
66.249.67
66.249.68
66.249.69
66.249.70
66.249.71
66.249.72
66.249.73
66.249.78
66.249.79
72.14.199
8.6.48
141.185.209
169.207.238
199.177.18.9
202.160.178
202.160.179
202.160.180
202.160.181
202.160.183.182
202.160.183.217
202.160.183.218
202.160.183.219
202.160.183.220
202.160.183.235
202.160.183.239
202.160.183.245
202.160.185.174
202.165.96.142
202.165.98
202.165.99
202.212.5.30
202.212.5.32
202.212.5.33
202.212.5.34
202.212.5.35
202.212.5.36
202.212.5.37
202.212.5.38
202.212.5.39
202.212.5.47
202.212.5.48
202.46.19.93
203.123.188.2
203.141.52.41
203.141.52.42
203.141.52.43
203.141.52.44
203.141.52.45
203.141.52.46
203.141.52.47
203.255.234.102
203.255.234.103
203.255.234.105
203.255.234.106
206.190.43.125
206.190.43.81
207.126.239.224
209.1.12
209.1.13.101
209.1.13.231
209.1.13.232
209.1.32.122
209.1.38
209.131.40
209.131.41
209.131.48
209.131.49.37
209.131.50.153
209.131.51.166
209.131.60.169
209.131.60.170
209.131.60.171
209.131.60.19
209.131.62.107
209.131.62.108
209.131.62.109
209.131.62.214
209.185.122
209.185.141
209.185.143
209.191.64.227
209.191.65
209.191.65.249
209.191.65.82
209.191.82.245
209.191.82.252
209.191.83
209.191.83.220
209.191.87.215
209.191.87.216
209.191.87.217
209.191.87.218
209.191.87.219
209.191.87.220
209.191.87.221
209.191.87.222
209.191.87.223
209.67.206.126
209.67.206.127
209.67.206.133
209.73.176.128
209.73.176.129
209.73.176.133
209.73.176.134
209.73.176.136
211.14.8.240
211.169.241.21
213.216.143.37
213.216.143.38
213.216.143.39
216.109.121.70
216.109.121.71
216.109.126.131
216.109.126.133
216.109.126.137
216.109.126.138
216.109.126.139
216.109.126.141
216.109.126.143
216.109.126.145
216.109.126.146
216.109.126.147
216.109.126.150
216.109.126.152
216.109.126.157
216.109.126.158
216.109.126.159
216.109.126.160
216.109.126.161
216.136.233.164
216.145.58.219
216.155.198.60
216.155.200
216.155.202.175
216.155.202.54
216.155.204.40
216.239.193.71
216.239.193.72
216.239.193.73
216.239.193.74
216.239.193.75
216.239.193.76
216.239.193.77
216.239.193.78
216.239.193.79
216.239.193.80
216.239.193.81
216.239.193.82
216.239.193.83
216.239.193.84
216.239.193.85
216.239.193.86
216.32.237.1
216.32.237.10
216.32.237.11
216.32.237.12
216.32.237.13
216.32.237.14
216.32.237.15
216.32.237.16
216.32.237.17
216.32.237.18
216.32.237.19
216.32.237.20
216.32.237.21
216.32.237.22
216.32.237.23
216.32.237.24
216.32.237.25
216.32.237.26
216.32.237.27
216.32.237.28
216.32.237.29
216.32.237.30
216.32.237.7
216.32.237.8
216.32.237.9
62.172.199.20
62.172.199.21
62.172.199.22
62.172.199.23
62.172.199.24
62.27.59.245
63.163.102.180
63.163.102.181
63.163.102.182
64.157.137.219
64.157.137.220
64.157.137.221
64.157.137.225
64.157.138.103
64.157.138.108
64.75.36.42
64.75.36.43
64.75.36.44
64.75.36.45
64.75.36.47
64.75.36.77
64.75.36.79
64.75.36.80
66.163.170.157
66.163.170.159
66.163.170.161
66.163.170.162
66.163.170.166
66.163.170.167
66.163.170.170
66.163.170.172
66.163.170.176
66.163.170.178
66.163.170.179
66.163.170.180
66.163.170.184
66.163.170.185
66.163.170.190
66.163.170.192
66.163.174.65
66.196.101
66.196.65
66.196.67.100
66.196.67.101
66.196.67.102
66.196.67.103
66.196.67.104
66.196.67.105
66.196.67.106
66.196.67.107
66.196.67.108
66.196.67.109
66.196.67.110
66.196.67.111
66.196.67.112
66.196.67.113
66.196.67.114
66.196.67.115
66.196.67.116
66.196.67.117
66.196.67.118
66.196.67.119
66.196.67.120
66.196.67.121
66.196.67.122
66.196.67.123
66.196.67.124
66.196.67.125
66.196.67.126
66.196.67.127
66.196.67.128
66.196.67.129
66.196.67.130
66.196.67.150
66.196.67.151
66.196.67.176
66.196.67.177
66.196.67.178
66.196.67.200
66.196.67.201
66.196.67.202
66.196.67.203
66.196.67.204
66.196.67.205
66.196.67.206
66.196.67.207
66.196.67.208
66.196.67.209
66.196.67.210
66.196.67.211
66.196.67.212
66.196.67.213
66.196.67.214
66.196.67.215
66.196.67.216
66.196.67.217
66.196.67.218
66.196.67.219
66.196.67.220
66.196.67.221
66.196.67.222
66.196.67.223
66.196.67.224
66.196.67.225
66.196.67.226
66.196.67.227
66.196.67.228
66.196.67.229
66.196.67.230
66.196.67.231
66.196.67.232
66.196.67.233
66.196.67.234
66.196.67.235
66.196.67.236
66.196.67.237
66.196.67.238
66.196.67.239
66.196.67.240
66.196.67.254
66.196.67.30
66.196.67.31
66.196.67.32
66.196.67.33
66.196.67.34
66.196.67.35
66.196.67.36
66.196.67.37
66.196.67.38
66.196.67.39
66.196.67.70
66.196.67.71
66.196.67.72
66.196.67.73
66.196.67.74
66.196.67.75
66.196.67.76
66.196.67.77
66.196.67.78
66.196.67.79
66.196.67.80
66.196.67.94
66.196.67.95
66.196.67.96
66.196.67.97
66.196.67.98
66.196.67.99
66.196.72
66.196.73
66.196.74
66.196.77
66.196.78
66.196.80
66.196.81.10
66.196.81.102
66.196.81.103
66.196.81.104
66.196.81.105
66.196.81.106
66.196.81.107
66.196.81.108
66.196.81.109
66.196.81.11
66.196.81.110
66.196.81.111
66.196.81.112
66.196.81.113
66.196.81.114
66.196.81.115
66.196.81.116
66.196.81.117
66.196.81.118
66.196.81.119
66.196.81.12
66.196.81.120
66.196.81.121
66.196.81.122
66.196.81.123
66.196.81.124
66.196.81.125
66.196.81.126
66.196.81.127
66.196.81.128
66.196.81.129
66.196.81.13
66.196.81.130
66.196.81.131
66.196.81.132
66.196.81.133
66.196.81.134
66.196.81.135
66.196.81.136
66.196.81.137
66.196.81.138
66.196.81.139
66.196.81.14
66.196.81.140
66.196.81.141
66.196.81.142
66.196.81.143
66.196.81.144
66.196.81.145
66.196.81.146
66.196.81.147
66.196.81.148
66.196.81.149
66.196.81.15
66.196.81.150
66.196.81.151
66.196.81.152
66.196.81.153
66.196.81.154
66.196.81.155
66.196.81.156
66.196.81.157
66.196.81.158
66.196.81.159
66.196.81.16
66.196.81.160
66.196.81.161
66.196.81.162
66.196.81.163
66.196.81.164
66.196.81.165
66.196.81.166
66.196.81.167
66.196.81.168
66.196.81.169
66.196.81.17
66.196.81.170
66.196.81.171
66.196.81.172
66.196.81.173
66.196.81.174
66.196.81.175
66.196.81.176
66.196.81.177
66.196.81.178
66.196.81.179
66.196.81.18
66.196.81.180
66.196.81.181
66.196.81.182
66.196.81.183
66.196.81.184
66.196.81.185
66.196.81.187
66.196.81.188
66.196.81.189
66.196.81.19
66.196.81.190
66.196.81.191
66.196.81.192
66.196.81.193
66.196.81.194
66.196.81.195
66.196.81.196
66.196.81.197
66.196.81.198
66.196.81.199
66.196.81.20
66.196.81.200
66.196.81.201
66.196.81.202
66.196.81.203
66.196.81.204
66.196.81.205
66.196.81.206
66.196.81.207
66.196.81.208
66.196.81.209
66.196.81.21
66.196.81.210
66.196.81.211
66.196.81.212
66.196.81.213
66.196.81.214
66.196.81.215
66.196.81.216
66.196.81.217
66.196.81.218
66.196.81.219
66.196.81.22
66.196.81.23
66.196.81.86
66.196.81.87
66.196.81.88
66.196.81.93
66.196.81.94
66.196.81.95
66.196.81.96
66.196.90
66.196.91
66.196.92
66.196.93.19
66.196.93.24
66.196.93.6
66.196.93.7
66.196.97
66.196.99.20
66.218.65.52
66.218.70
66.228.164
66.228.165
66.228.166
66.228.173
66.228.182.177
66.228.182.183
66.228.182.185
66.228.182.187
66.228.182.188
66.228.182.190
66.94.230.100
66.94.230.101
66.94.230.102
66.94.230.103
66.94.230.104
66.94.230.105
66.94.230.106
66.94.230.107
66.94.230.108
66.94.230.109
66.94.230.110
66.94.230.160
66.94.230.161
66.94.230.162
66.94.230.163
66.94.230.96
66.94.230.97
66.94.230.98
66.94.230.99
66.94.232
66.94.233
66.94.238.51
68.142.195.80
68.142.195.81
68.142.203.133
68.142.211.69
68.142.212.197
68.142.230.125
68.142.230.126
68.142.230.127
68.142.230.128
68.142.230.129
68.142.230.130
68.142.230.131
68.142.230.132
68.142.230.133
68.142.230.134
68.142.230.135
68.142.230.136
68.142.230.137
68.142.230.138
68.142.230.139
68.142.230.140
68.142.230.141
68.142.230.142
68.142.230.143
68.142.230.144
68.142.230.145
68.142.230.146
68.142.230.147
68.142.230.148
68.142.230.149
68.142.230.150
68.142.230.151
68.142.230.152
68.142.230.153
68.142.230.154
68.142.230.155
68.142.230.156
68.142.230.157
68.142.230.158
68.142.230.159
68.142.230.160
68.142.230.161
68.142.230.162
68.142.230.163
68.142.230.164
68.142.230.165
68.142.230.166
68.142.230.167
68.142.230.168
68.142.230.169
68.142.230.174
68.142.230.175
68.142.230.176
68.142.230.177
68.142.230.178
68.142.230.179
68.142.230.180
68.142.230.181
68.142.230.182
68.142.230.183
68.142.230.184
68.142.230.185
68.142.230.186
68.142.230.187
68.142.230.188
68.142.230.189
68.142.230.190
68.142.230.191
68.142.230.192
68.142.230.193
68.142.230.194
68.142.230.195
68.142.230.196
68.142.230.197
68.142.230.198
68.142.230.199
68.142.230.200
68.142.230.201
68.142.230.202
68.142.230.203
68.142.230.204
68.142.230.205
68.142.230.206
68.142.230.207
68.142.230.208
68.142.230.209
68.142.230.210
68.142.230.211
68.142.230.212
68.142.230.213
68.142.230.214
68.142.230.215
68.142.230.216
68.142.230.217
68.142.230.240
68.142.230.247
68.142.230.248
68.142.230.249
68.142.230.250
68.142.230.251
68.142.230.252
68.142.230.253
68.142.230.254
68.142.230.32
68.142.230.33
68.142.230.34
68.142.230.35
68.142.230.36
68.142.230.37
68.142.230.38
68.142.230.39
68.142.230.40
68.142.230.41
68.142.230.43
68.142.230.44
68.142.230.45
68.142.230.46
68.142.230.47
68.142.230.48
68.142.230.49
68.142.231.49
68.142.240.106
68.142.246
68.142.249
68.142.250
68.142.251
69.147.79.131
69.147.79.137
69.147.79.173
72.30.101
72.30.102
72.30.103
72.30.104
72.30.107
72.30.110
72.30.111
72.30.124.128
72.30.124.130
72.30.124.134
72.30.128
72.30.129
72.30.131
72.30.132
72.30.133
72.30.134
72.30.135
72.30.142.24
72.30.142.25
72.30.177
72.30.214
72.30.215
72.30.216
72.30.221
72.30.226
72.30.252
72.30.54
72.30.56
72.30.60
72.30.61
72.30.81
72.30.87
72.30.9
72.30.97
72.30.98
72.30.99
74.6.131
74.6.17
74.6.18
74.6.19
74.6.20
74.6.21
74.6.22
74.6.23
74.6.24
74.6.240
74.6.25
74.6.26
74.6.27
74.6.28
74.6.29
74.6.65
74.6.66
74.6.67
74.6.68
74.6.69
74.6.70
74.6.71
74.6.72
74.6.73
74.6.74
74.6.75
74.6.76
74.6.79
74.6.85
74.6.86
74.6.87
166.48.225.254
202.232.118.40
202.232.118.51
206.79.171
207.77.90
207.77.91.184
208.146.26
208.146.27.123
208.146.27.124
208.146.27.57
208.146.27.58
208.146.27.59
208.146.27.60
208.146.27.62
208.146.27.89
208.146.27.90
208.146.27.91
208.146.27.92
208.146.27.93
208.146.27.94
208.146.27.95
208.146.27.96
209.202.192
209.202.192.147
209.202.193
209.202.194.237
209.202.194.238
209.202.205.1
209.202.240.109
209.202.240.8
209.202.248.211
209.202.248.212
209.202.248.213
209.202.248.214
209.67.228
209.67.229
211.51.63.4
213.193.19.35
64.89.33
195.145.119.24
195.145.119.25
198.5.208
198.5.210
202.33.250.146
202.33.250.147
202.33.250.148
202.33.250.149
202.33.250.150
202.33.250.151
202.33.250.152
202.33.250.153
202.33.250.154
204.162.96
204.162.97.1
204.162.97.152
204.162.97.17
204.162.97.2
204.162.97.205
204.162.97.228
204.162.97.231
204.162.97.3
204.162.97.32
204.162.98.11
204.162.98.12
204.162.98.124
204.162.98.126
204.162.98.151
204.162.98.161
204.162.98.168
204.162.98.18
204.162.98.192
204.162.98.2
204.162.98.237
204.162.98.27
204.162.98.3
204.162.98.36
204.162.98.38
204.162.98.4
204.162.98.45
204.162.98.48
204.162.98.49
204.162.98.5
204.162.98.6
204.162.98.7
204.162.98.8
204.162.98.80
204.162.98.88
204.162.98.9
204.162.98.91
204.162.98.98
204.202.132.19
205.226.201
205.226.203.186
205.226.203.35
205.226.203.56
205.226.203.62
205.226.204.238
206.3.30.196
206.3.30.250
206.3.30.251
210.148.160.157
210.148.160.163
210.148.160.165
210.148.160.206
210.155.157
210.155.159
210.236.233.130
210.236.233.131
210.236.233.132
210.236.233.133
210.236.233.135
210.236.233.136
210.236.233.137
210.236.233.139
210.236.233.150
210.236.233.151
210.236.233.155
210.236.233.160
210.236.233.161
211.13.222.230
211.18.214.194
212.185.44.10
212.185.44.11
212.185.44.12
212.185.44.15

เวลาจะใช้ก็ให้เอา agent พวกนี้ยัดลง array แล้ว random เอานะครับ แต่ผมยังไม่เคยลองเลย เป็นแค่ความคิดเพียวๆ ใครจะเอาไปใช้ก็เสี่ยงกันเอาเองนะครับผม


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Tee++; ที่ 10 สิงหาคม 2007, 15:55:33
เข้าท่าแฮะ ปลอมเป็น bot  :'(


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: lowprofile ที่ 10 สิงหาคม 2007, 16:00:30
เผื่อเว็บใครเงียบเหงาก็ปลอมเข้าไปหาซะหน่อย จะได้ดีใจว่า bot เข้ามาแว้วววว

มันชื่นนนนนนนนจายยยยยยยย


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 10 สิงหาคม 2007, 17:20:23
โอ้ว เจ๋งครับ

ขอบคุณสำหรับลิสมากเลยครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Pipo ที่ 20 สิงหาคม 2007, 20:48:45
เห็นมือใหม่หลายๆ คนเริ่มเขียน php ร่วมกับ html แล้วคิดว่าน่าจะเหนื่อยไม่น้อยครับ

ผมมี trick มาฝาก ไม่แน่ใจว่ามีท่านใน post ไปหรือยังเพราะไล่อ่านทุกหน้าไม่ไหว  :P
ขอเิริ่มเลยแล้วกัน
ปกติจะเก็บค่าตัวแปรที่เป็น html หรือ print html ต้องใส่ \ นำหน้าเช่น
$var1 = "<font size=\"2\" color=\"#FF0000\">ข้อความ<font>";
ทำให้เสียเวลาไปเยอะ ลองมาเปลี่ยนเป็นแบบนี้ดีกว่า

โค๊ด:
<?

$strSting = <<<Data
<font size="3">
หัวข้อข่าววันนี้
หลายบรรทัดก็ได้ไม่ต้องมานั่งใน่ \" หรือ \'
</font>
Data;

echo $strSting;




# จะใช้ชื่อตัวเองก็ได้ เท่ห์ไม่ซ้ำใคร
$strVar1 = "ตัวแปร 1";
$strVar2 = "ตัวแปร 2";

$strSting = <<<Pipo

ใส่ตัวแปรก็หายห่วง
<font size="2">
$strVar1
$strVar2
</font>
Pipo;

echo $strSting;


?>

มีข้อแม้อยู่อย่างเดียวคือตัวที่ปิดต้องชิดด้านซ้ายสุดห้ามมี space หรือ tab


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: aomnaruk ที่ 20 สิงหาคม 2007, 21:12:33
^
^

ใช้คุณ Pipo ที่พัฒนาโปรแกรม PP_Anticheat หรือเปล่าครับ ???


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Pipo ที่ 20 สิงหาคม 2007, 21:21:56
^
^

ใช้คุณ Pipo ที่พัฒนาโปรแกรม PP_Anticheat หรือเปล่าครับ ???

ผมเองครับ  ;)
เล่น CS เหรอครับ ใช้ชื่ออะไร


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: aomnaruk ที่ 20 สิงหาคม 2007, 21:34:41
^
^

ใช้คุณ Pipo ที่พัฒนาโปรแกรม PP_Anticheat หรือเปล่าครับ ???

ผมเองครับ  ;)
เล่น CS เหรอครับ ใช้ชื่ออะไร

ครับผมก็เล่นอยู่เหมือนกัน CS1.6 ชื่อ  *~NooB~*


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Kaeji ที่ 21 สิงหาคม 2007, 04:41:53
^
^

ใช้คุณ Pipo ที่พัฒนาโปรแกรม PP_Anticheat หรือเปล่าครับ ???

ผมเองครับ  ;)
เล่น CS เหรอครับ ใช้ชื่ออะไร

ครับผมก็เล่นอยู่เหมือนกัน CS1.6 ชื่อ  *~NooB~*

(ขออภัยครับที่ผมไม่เกี่ยว และไม่ได้ตังใจจะเปลี่ยนประเด็นเลยครับ)

แหะแหะ คืออยากจะบอกว่า ใช้ชื่อ Kaeji ครับ เล่นใน glad บ้างเป็นบางครั้ง ส่วนใหญ่จะให้น้องเล่นครับ
ขอบคุณ pipoนะครับ โปรแกรมดีครับ ^^

 :'(
อยากเจอคนรู้จักจังคิดถึงความหลังตอนเล่นเกมส์ข้ามวันข้ามคืน.... PM มาได้นะครับ อยากเจอ dark และอีกหลายๆคนจังเลย 
กระผมคือ Kaeji หุ้นส่วนและเจ้าของร้านเล็กๆที่ชื่อ FeM@ ที่เกษตรซึ่งปิดไปนานแล้ว ผมชอบ CS มากมายครับแต่ไม่เก่ง  


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 21 สิงหาคม 2007, 12:43:53
อยากเล่นบ้าง เขาไปเล่นกันที่ไหนอะ   :P

ปกติมีแต่เรียกเพื่อนไปเล่นที่ร้าน =__="


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: lowprofile ที่ 21 สิงหาคม 2007, 12:55:43
เล่น CS กันเหรอครับ มีใครเล่น StarCraft บ้างครับ StarCraft II กำลังจะออกแล้ว บางทีอาจจะได้มาเล่นด้วยกันครับ



วิธีการทำงานร่วมกันของ Html กะ PHP นี่ผมก็ใช้แบบคุณ Pipo เหมือนกันครับ แต่ถ้าขี้เกียจหนักๆ หรือมีส่วนที่ต้อง echo ไม่มากนัก ผมใช้ include เอาเลย

วิธีการคือ จากเดิมเราเคยเอาค่าเก็บไว้ในตัวแปร PHP อย่าง $string1 หรือ $string2 ผมก็สร้าง file string1.html กะ string2.html ขึ้นมา (จะ .html หรือ .inc หรือ .php อะไรก็ได้ แล้วแต่สะดวก) เช่น

string1.html
โค๊ด:
<font size="2">
BoS = Boots of Speed (item)
BKB= Black King Bar (item)
MKB = Monkey King Bar (item)
HoT, heart =Heart of Terrenque
EoS = Eye of Skadi (item)
BoT= Boots of Travel
SoT : scroll of teleport (under used item imo)
RoH= Ring of Health
RoR= Ring of Regeneration
Void, stone = Void Stone
</font>


จากนั้นใน file php ก็ include อีกทีเป็นอันจบ
โค๊ด:
<?PHP
include "string1.html";

#หรือถ้าเคย define ค่า path ไว้แล้วก็ใส่เป็น

include PATH_OF_DIR."string1.html";
?>

เหมาะกับการ include ค่า javascript code ของ adsense หรือพวก file footer เป็นต้น


มีเท่านี้ครับ ทริกง่ายๆ ของคนขี้เกียจอย่างผม  :P


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: lowprofile ที่ 21 สิงหาคม 2007, 13:03:35
อีกอย่างนึง ความแตกต่างระหว่าง include กะ require เผื่อคนที่ยังไม่รู้ครับ

include หรือ include_once
ถ้า include แล้วหา file ที่สั่งให้ include ไม่เจอ มันจะแจ้ง error message แล้วทำงานต่อจนจบ file

require หรือ require_once
ถ้า require แล้วหา file ที่สั่งให้ require ไม่เจอ มันจะแจ้ง error message แล้วหยุดการทำงานทันที


เพราะฉะนั้น
require เหมาะสำหรับ การนำเข้า file ที่สำคัญๆ ของระบบ อย่างพวก DB connect หรือ config หรืออะไรก็ตามที่ขาดไปแล้วยังปล่อยให้ทำงานต่อได้ จะทำให้ระบบทำงานผิดพลาดมากกว่าหยุดไปเสีย

include เหมาะสำหรับ การนำเข้า file ที่ไม่สำคัญนัก อย่างพวกข้อมูลธรรมดา (เช่นพวกที่ยกตัวอย่าง reply เมื่อกี้ก็ได้) ถ้าขาดไป ระบบไม่ขาดใจ เป็นต้น


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: janeos ที่ 21 สิงหาคม 2007, 16:31:13
เล่น CS กันเหรอครับ มีใครเล่น StarCraft บ้างครับ StarCraft II กำลังจะออกแล้ว บางทีอาจจะได้มาเล่นด้วยกันครับ


อ้า... เจอเพื่อนแล้ววว
ผมนี่แหละ แฟน StarCraft ตัวยง
ตอนนี้รอ StarCraft2 อย่างใจจดใจจ่อ ออกเมื่อไหร่ สอยแผ่นแท้ทันที :'(


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 21 สิงหาคม 2007, 18:42:33
เล่น CS กันเหรอครับ มีใครเล่น StarCraft บ้างครับ StarCraft II กำลังจะออกแล้ว บางทีอาจจะได้มาเล่นด้วยกันครับ


อ้า... เจอเพื่อนแล้ววว
ผมนี่แหละ แฟน StarCraft ตัวยง
ตอนนี้รอ StarCraft2 อย่างใจจดใจจ่อ ออกเมื่อไหร่ สอยแผ่นแท้ทันที :'(

Starcraft ผมเคยเล่นหน่อย (เกิดมารุ่นหลัง เลยเป็นสาวก C&C)

Command & Conquer 3 Tiberium War
ภาคนี้ผมว่าวิธีบังคับคล้ายของ StarCraft เลย ไม่รู้คิดไปเองหรือเปล่า


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Kaeji ที่ 22 สิงหาคม 2007, 16:26:57
เล่น CS กันเหรอครับ มีใครเล่น StarCraft บ้างครับ StarCraft II กำลังจะออกแล้ว บางทีอาจจะได้มาเล่นด้วยกันครับ


อ้า... เจอเพื่อนแล้ววว
ผมนี่แหละ แฟน StarCraft ตัวยง
ตอนนี้รอ StarCraft2 อย่างใจจดใจจ่อ ออกเมื่อไหร่ สอยแผ่นแท้ทันที :'(

Starcraft ผมเคยเล่นหน่อย (เกิดมารุ่นหลัง เลยเป็นสาวก C&C)

Command & Conquer 3 Tiberium War
ภาคนี้ผมว่าวิธีบังคับคล้ายของ StarCraft เลย ไม่รู้คิดไปเองหรือเปล่า

สาวก C&C Red Alert Yuri นัดเจอกันได้ครับ ผมชอบครับ ผมเคยอยู่ทีม [oonrA2] ครับปม กระปมคือ [oonrA2]-Kaeji และ [oonrA2]-ASDF ครับปม
StarCraft คงต้องลื้อฟื้นกันนิดนึง ปุ่มบังคับมันตรงกันข้ามกัน คนละบริษัทกันก็ยั่งงี้แหละครับ

C&C เห็นมีออนไลท์อยู่ด้วยนะครับแต่ไม่แน่ใจว่า server ไหน ส่วน StarCraft ออนไลท์ก็ Thaicybergames เลยครับตอนนี้กำลังหลง DotA กับพวก TD อยู่ครับ
รอ StarCraft II อยู่หมือนกันครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: moomoo213 ที่ 22 สิงหาคม 2007, 16:33:20
สาวก starcraft เหมือนกันครับ ผ่านมา 6-7 ปี แล้วก็ยังเล่นอยุ่เลย แต่ชอบไปเล่นserverนอก server ไทยหนิแทบจะร้างเลย ;D ;D


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: guy852 ที่ 24 สิงหาคม 2007, 00:22:15
คนโพสต่อไปถ้ามีตัว E นำหน้าเป็นเกย์  :D


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 24 สิงหาคม 2007, 02:08:02
เอาเข้าไป เดียวจับคนโพสก่อนหน้านี้
มีตัว g นำหน้าไปทำเมียแทน

-*-

เลิกเล่นได้แล้วทั่น ชักไม่ขำ  :(

ปล. ติดไว้ เดียวพรุ่งนี้ จะมาโพสเรื่องการทำระบบ Tags แบบ WEB2.0  :)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: icez ที่ 24 สิงหาคม 2007, 02:27:54
คำเตือนเรื่องการใช้ include
สำคัญมากๆ เลยครับ

เนื่องจาก include / include_once / require / require_once ทั้งหมดนี่
เป็นการ เรียกมารวมกับ script ของเราแล้วทำการประมวลผลทั้งสิ้น
ทำให้เกิดกรณีแบบนี้ได้ครับ


main.php:
<?php
include("filecode.html");
?>

filecode.html:
<?php
echo("hacked");
?>

ลองเอาไปรันดูสิครับ


ทางแก้:
กรณีที่ต้องการ include static file ที่เป็นข้อความเฉยๆ เหมือน quote ด้านล่าง ให้เปลี่ยนคำสั่งครับ
ไปใช้ readfile(); แทน เพื่อให้ อ่านแล้วแสดงผลออกมาเลย ไม่มีการประมวลผล
คำสัง readfile ใช้เหมือน include เลยครับ

เล่น CS กันเหรอครับ มีใครเล่น StarCraft บ้างครับ StarCraft II กำลังจะออกแล้ว บางทีอาจจะได้มาเล่นด้วยกันครับ



วิธีการทำงานร่วมกันของ Html กะ PHP นี่ผมก็ใช้แบบคุณ Pipo เหมือนกันครับ แต่ถ้าขี้เกียจหนักๆ หรือมีส่วนที่ต้อง echo ไม่มากนัก ผมใช้ include เอาเลย

วิธีการคือ จากเดิมเราเคยเอาค่าเก็บไว้ในตัวแปร PHP อย่าง $string1 หรือ $string2 ผมก็สร้าง file string1.html กะ string2.html ขึ้นมา (จะ .html หรือ .inc หรือ .php อะไรก็ได้ แล้วแต่สะดวก) เช่น

string1.html
โค๊ด:
<font size="2">
BoS = Boots of Speed (item)
BKB= Black King Bar (item)
MKB = Monkey King Bar (item)
HoT, heart =Heart of Terrenque
EoS = Eye of Skadi (item)
BoT= Boots of Travel
SoT : scroll of teleport (under used item imo)
RoH= Ring of Health
RoR= Ring of Regeneration
Void, stone = Void Stone
</font>


จากนั้นใน file php ก็ include อีกทีเป็นอันจบ
โค๊ด:
<?PHP
include "string1.html";

#หรือถ้าเคย define ค่า path ไว้แล้วก็ใส่เป็น

include PATH_OF_DIR."string1.html";
?>

เหมาะกับการ include ค่า javascript code ของ adsense หรือพวก file footer เป็นต้น


มีเท่านี้ครับ ทริกง่ายๆ ของคนขี้เกียจอย่างผม  :P


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 24 สิงหาคม 2007, 14:14:18
วิธีการทำระบบ Tags ตามแบบฉบับ WEB2.0

เนื้อๆ ตามนี้เลย
1. ท่านต้องออกแบบฐานข้อมูลให้มีฟิลด์เก็บ tag เพิ่ม
ยกตัวอย่าง
id  title  content   tags (อันนี้เราจะใช้เก็บ)

2. ให้เขียนระบบรับข้อมูลแท็กแล้วแปลงออกมาในรูป
tag1,tag2,tag3,tag4,tag5

ท่านอาจใช้การ explode แล้วค่อย trim เพื่อดักช่องว่างหน้า/หลัง ก็พอ
แล้วตัดสัญลักษณ์พิเศษออกด้วยนะ กันโดน injection หน่อยๆ

3. เวลาเขียน query อ่าน tag ให้เขียนลักษณะนี้

$tags = "แท็กที่ต้องการหา";
$result = mysql_query("select * FROM table_list WHERE tags REGEXP '[[:<:]]".$tags."[[:>:]]' ");

สังเกตที่ WHERE tags REGEXP '[[:<:]]".$tags."[[:>:]]'

ส่วนนี้จะเป็นส่วนการเรียกแท็กนะครับ

เท่าที่เราก็จะได้ระบบ Tags แบบเว็บ 2.0 แล้วครับ

ปล. รองรับแท็กชนิดมีช่องว่างได้ด้วยนะ  :)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: aomnaruk ที่ 24 สิงหาคม 2007, 16:33:06
อย่างนี้เว็บปั่นผมก็ถือว่าเป็น WEB2.0 เหมือนกันอะสิ

555


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: lowprofile ที่ 24 สิงหาคม 2007, 16:48:18
ขอบคุณที่เตือนครับคุณ icez :-*


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: aomnaruk ที่ 26 สิงหาคม 2007, 13:35:33
สำหรับบางสคิปบางตัวที่ทำงานเป็นเวลานานๆแต่ขี้เกียจเปิดเครื่องเพื่อรันสคิปทิ้งไว้(เปลืองไฟ)

วิธีแก้ก็เพิ่มบอรรทัดนี้เข้าไปตรงส่วนหัวสคิปครับ

ignore_user_abort(TRUE);

แค่นี้เราก็รันสคิปแค่แปปเดียวแล้วก็ปิดทิ้งได้เลยเพราะมันจะไม่หยุดการทำงานแต่รันตัวเองอยู่ Background ไปเรื่อยจนกว่าจะเสร็จ







หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 27 สิงหาคม 2007, 09:20:15
สำหรับบางสคิปบางตัวที่ทำงานเป็นเวลานานๆแต่ขี้เกียจเปิดเครื่องเพื่อรันสคิปทิ้งไว้(เปลืองไฟ)

วิธีแก้ก็เพิ่มบอรรทัดนี้เข้าไปตรงส่วนหัวสคิปครับ

ignore_user_abort(TRUE);

แค่นี้เราก็รันสคิปแค่แปปเดียวแล้วก็ปิดทิ้งได้เลยเพราะมันจะไม่หยุดการทำงานแต่รันตัวเองอยู่ Background ไปเรื่อยจนกว่าจะเสร็จ

ขอบคุณครับ ไม่เคยรู้คำสั่งนี้จริงๆ นะเนี่ย   :)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: tarnroma ที่ 27 สิงหาคม 2007, 13:39:59
ignore_user_abort(TRUE);

แหล่มมากคับ  8)

เกี่ยวกับการสืบทอด Value ของ PHP ที่ภาษาอื่นไม่ทำกันคับ
โค๊ด:
<?
$value = "Hello";
$word = "value";
$Hello = "Hello World";
echo $$word;//Hello
echo "<br>";
echo $$$word;//Hello World
?>



หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: nineton ที่ 03 กันยายน 2007, 03:49:39
สอบถามหน่อยคับ

โค๊ด:
 <table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>dasdasdasd</td>
    <td>fdsfsd</td>
  </tr>
  <tr>
    <td>dsadasdasd</td>
    <td>dasdsadasd</td>
  </tr>
</table>

ตามโค้ดด้านบนนี้อ่าคับ คือผม ต้องการที่จะ ดึง โค้ดที่อยู่ระหว่าง

<table width="100%" border="0" cellspacing="0" cellpadding="0">
กับ
</table>

มาแสดงอ่าคับก็คือให้มันแสดงแค่

โค๊ด:
  <tr>
    <td>dasdasdasd</td>
    <td>fdsfsd</td>
  </tr>
  <tr>
    <td>dsadasdasd</td>
    <td>dasdsadasd</td>
  </tr>

อ่าคับ ทำไงอ่าคับ

ขอบคุณค้าบ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 03 กันยายน 2007, 10:39:34
โค๊ด:
$var = '<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>dasdasdasd</td>
    <td>fdsfsd</td>
  </tr>
  <tr>
    <td>dsadasdasd</td>
    <td>dasdsadasd</td>
  </tr>
</table>';

$var = str_replace(array("\r", "\n"), "", $var);
preg_match("/<table[^>]*>(.*)<\/table>/", $var , $match);
echo $match[1];

ตามนี้ครับ
 
(ผมใช้ PHP5 นะ)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 16 กันยายน 2007, 17:49:23
นานแล้วไม่ได้อัพเดตบ่อยนัก ใครมีอะไรเล็กๆ น้อยๆ มาแบ่งปันก็ได้นะครับ
เพราะไอ้บางสิ่งเวลาอยากใช้ดันหาไม่ค่อยจะเจอ
แต่พอจะใช้ที มันอยู่ไหนเนี่ย  555+

ตัวอย่างการใช้ fsockopen ในการส่งข้อมูลแบบ POST

พอดีเคยใช้ทำงานให้ลูกค้าเมื่อก่อน เลยขุดขึ้นมาให้ดูกัน
คำเตือน อย่าเอาไปทำอะไรไม่ดีนะ อิๆ

เขียนเป็นฟังค์ชั่นใช้งานง่ายๆ นิดเดียว

โค๊ด:
function fsock_post($url, $post) {
$parse = parse_url($url);

srand((double)microtime()*1000000);
$boundary = "---------------------".substr(md5(rand(0,32000)),0,10);

// Build the header
$header = "POST ".$parse['path']." HTTP/1.0\r\n";
$header .= "Host: ".$parse['host']."\r\n";
$header .= "Content-type: multipart/form-data, boundary=$boundary\r\n";

// attach post vars
foreach($post AS $index => $value){
$data2 .="--$boundary\r\n";
$data2 .= "Content-Disposition: form-data; name=\"".$index."\"\r\n";
$data2 .= "\r\n".$value."\r\n";
}
$data2 .= "--$boundary--\r\n";

$header .= "Content-length: " . strlen($data2) . "\r\n\r\n";

// Open the connection
$fp = fsockopen($parse['host'], 80);
// then just
fputs($fp, $header.$data2);
fclose($fp);
}

fsock_post(url ที่จะส่ง, ค่าpost mจะส่งในรูป array);

ลองเอาไปดูๆ กันนะครับ  :'(


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: tenzamak ที่ 16 กันยายน 2007, 18:47:21
คือรบกวนพี่ๆลุงๆป้าๆน้าๆอาๆทีครับ

คือผมทําเว็บฝากรูป (http://www.uppicz.info)อยู่คือตอนนี้มันอีพไรที่ละรูปเห็นบางเวบอัพได้ทีเป็น10รูปเลยผมต้องทําไงครับถึงทําแบบนี้ได้
แล้วอีกอย่างเห็นบางเวบให้โค๊ดให้เอาโค๊ดไปติดที่เวบของผู้สนใจได้อ่ะครับโดยไม่ต้องเข้าผ่านเว็บเราไม่ทราบว่าเขียนยังไงครับ เว็บนี้ครับ uppicz.info ไม่ได้ตั้งใจโปรโมทนะครับแค่ต้องการให้รู้ว่าเวบเป็นไงเฉยๆเพื่อจําเป็นต้องใช้


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 16 กันยายน 2007, 19:11:01
อีกบทความละกัน แถมแบบเรียลไทม์ + ไม่ค่อยจะเกี่ยวกะ php

ก่อน/หลังจะเป็นคำตอบให้ท่านอ่านเผื่ออวดภูมิตัวเอง (หรือเปล่า  :o)

19.06 ผมเปิดพี่กูค้นหาข้อมูล ลองค้นไปเรื่อยๆ
19.08 ผมเจอเว็บหนึ่งด้วยคีย์ upload file mass php
19.09 เจอหน้าหลักของข้อมูลที่ต้องการ
โค๊ด:
http://www.devarticles.com/c/a/PHP/Creating-a-MultiFile-Upload-Script-in-PHP/1/
19.11 เข้าใจข้อมูลทั้งหมด แต่เนื้อหาอธิบายยากพอควรเลยมาแปะลิงค์แทน + โพสว่า

ลองไปอ่านนี้ดูนะครับ
โค๊ด:
http://www.devarticles.com/c/a/PHP/Creating-a-MultiFile-Upload-Script-in-PHP/1/
มันใช้การเรียกตัวแปรระบบ ถ้าอัพไฟล์มีกี่ไฟล์ในตอนนั้น มันจะซ้อนเป็นอาเรย์

 :P

สรุป ไม่มีไอ้บ้าห้าร้อยที่ไหนรู้ตั้งแต่สากกะเบือยันเรือรบครับ
ต่อให้เทพแค่ไหนก็เป็น "คนที่ไม่รู้" มาก่อน

ผมเองในmsn 4 ใน 10 ผมต้องค้นหาใหม่เลย เพราะไม่รู้
ลำบากเหมือนกันเมื่อโดนถูกถาม เหอๆ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: tenzamak ที่ 16 กันยายน 2007, 19:15:50
งงครับพี่ท่านคําตอบเหมือนเคืองผมนิดๆไม่ทราบว่าผมถามไรผิดหรอครับงงแล้วอะไรอวดภูมิ
อ่านภาษาอังกฤษมะออก


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 16 กันยายน 2007, 19:25:11
งงครับพี่ท่านคําตอบเหมือนเคืองผมนิดๆไม่ทราบว่าผมถามไรผิดหรอครับงงแล้วอะไรอวดภูมิ
อ่านภาษาอังกฤษมะออก

อ้อ ผมไม่ได้เคืองนะครับ ผมไม่ใช่พวกไร้เหตุผลนะ

เพียงแต่คำพูดลักษณะนี้ มันสื่อถึงสิ่งที่ผมอยากบอกได้มากที่สุดครับ

ผมพูดถึงพวกถามได้ตลอด ถามมันทุกอย่าง (คุณ tenzamak ก็ทำโฮสติ้งนิ คงต้องเคยเจอ)

เจอแบบนี้บ่อยๆ ผมแทบจะปิด msn ทิ้ง  :(

(นอกเรื่องไปโข  :D)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: guy852 ที่ 16 กันยายน 2007, 19:41:10
 :-\ อย่าไปเชื่อที่คุณโจ้บอกว่ามีเหตุผล  :-\


>>ทีเราบอกพี่แกเป็นชาวม่วงพี่แกยังไม่ยอมรับเลย มีเหตุผลไหมละ<<


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: cnnon ที่ 28 กันยายน 2007, 19:43:57
ไม่มีมาแชร์ครับ แต่มาถามขอความรู้หน่อย
PHP มีคำสั่งข้าม error หรือเปล่าครับ เช่นตัวอย่างของ asp
 on error resume next แล้ว ของ php มันเขียนไงครับ มีคำสั่งนี้หรือเปล่า


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: mixture ที่ 01 ตุลาคม 2007, 04:36:52
ไม่ค่อยรู้เรื่อง php หรอกครับ แต่อยากแชร์บ้าง แหะ ๆ  :P

วิธีทำ redirect page แบบเว็บ anony อะไรซักอย่าง จำ url ไม่ได้แล้ว  :-X

โค๊ด:
<?
    $url = '';
    while (list($var,$val) = each($HTTP_GET_VARS))
        $url .= "&$var=$val";
    $i = strpos($url, "&url=");
    if ($i !== false)
        $url = substr($url, $i + 5);
    print("<html><head><meta http-equiv=refresh content='0;url=$url'></head><body> ");
    print("<table border=0 width=100% height=100%><tr><td><h2 align=center>Redirecting you to:<br /> ");
    print("$url</h2></td></tr></table></body></html> ");
?>

ใช้ php เป็นตัวรับค่าและรีเฟรชค่า parameter เพื่อส่งต่อไปยังอีกเว็บหนึ่งเพื่อไม่ให้สามารถเช็ค refer ได้

สมมุติถ้าเซพโค๊ดนี้ชื่อ redirect.php การใช้งาน ก็ต้องให้ลิ้งอยู่ในรูปแบบ

โค๊ด:
a.com/redirect.php?url=www.ลิ้งปลายทาง.com

เอาไว้แก้ไขกับเว็บบอร์ดได้ โดยเพิ่ม redirect.php?url=<a>..ตัวแปร...</a> ใน code ของบอร์ด

content='0; ระยะเวลาในการรอรีเฟรช ใส่ 0 ถ้าต้องการให้ส่งต่อทันที


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: nuijang24 ที่ 10 ตุลาคม 2007, 10:16:51
ขอแชร์ บ้างซักนิดนะครับ เรื่องการรับส่งค่า ระหว่าง window หลัก และ popup และการเรียกใช้ parent ระหว่าง iframe กับ main iframe

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


1. มีไฟล์ window หลัก เป็นฟอร์ม ที่มี textbox 2 ตัวคือ 1 ชื่อ , 2 นามสกุล จากนั้นจะมีปุ่ม link สำหรับ เปิดหน้าต่าง popup เพื่อแสดง รายชื่อที่เป็นรายการใน List สำหรับ ค้นหา รายชื่อทั้งหมด จากฐานข้อมูล
2. มีไฟล์ window รอง เป้น popup สำหรับ แสดงรายชื่อทั้งหมดที่มีอยู่ และ มีช่อง iframe เพื่อเรียกไฟล์ list member ขึ้นมา
3. มีไฟล์ listmember ซึ่งอาจจะวน loopจากฐานข้อมูลขึ้นมาก็ได้

โคด หน้า window หลัก
โค๊ด:
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language="javascript">
<!--
// ฟังชั่นสำหรับ เปิดหน้าต่าง popup
function winopen(theURL,winName,width,height,scollbar) { //v2.0
var setfocus;
  setfocus = window.open(theURL,winName,'resizable=yes,scrollbars='+ scollbar +',width='+ width +',height='+ height +',top=0,left=0');
  setfocus.focus();
}
//-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620"></HEAD>

<BODY>
<form name="form1">
<table width="500" border="0" bgcolor="#cccccc" cellpadding="2" cellspacing="1">
<tr>
<td bgcolor="#eeeeee">ชื่อ</td>
<td bgcolor="#eeeeee"><input type="textbox" name="txtname"> <a href="javascript:winopen('popup01.html','open1',500,200,0)">find..</a></td>
</tr>
<tr>
<td bgcolor="#eeeeee">นามสกุล</td>
<td bgcolor="#eeeeee"><input type="textbox" name="txtsurname"></td>
</tr>
</table>
</form>
</BODY>
</HTML>

โคดหน้าต่าง popup
โค๊ด:

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620"></HEAD>

<BODY>
<table width="500" border="0" bgcolor="#cccccc" cellpadding="2" cellspacing="1">
<tr>
<td bgcolor="#eeeeee" valign="top"><h3>Link รายการกลับ</h3><br>
<a href="javascript:fram.returnTextBox(' ');">-- Clear TextBox --</a><br></td>
<td bgcolor="#eeeeee"><iframe  name="fram" src="popup01_link.html" frameborder="0"
scrolling="no"  height="100%" width="350" marginwidth="0" marginheight="0" ></iframe></td>
</tr>
</table>
</BODY>
</HTML>


โคดหน้า Iframe แสดงรายชื่อสมาชิก
โค๊ด:

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language="javascript">
<!--
function returnTextBox(val){
var result = val.split(" "); // ตัดคำ ชื่อ และนามสกุลออก
var txt1 = parent.window.opener.form1.txtname; // textbox ของ opener ตัวที่ 1 จ้า
var txt2 = parent.window.opener.form1.txtsurname; // textbox ของ opener ตัวที่ 2 จ้า
txt1.value=result[0]; // กำหนด ค่า value ลงไป ใน textbox 1
txt2.value=result[1]; // กำหนด ค่า value ลงไป ใน textbox 2
parent.window.close();
}
//-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620"></HEAD>

<BODY>
<!--  ส่วนนี้ สามารถ วน Loop จากดาต้าเบส ได้ครับ -->
<a href="javascript:returnTextBox('สราวุธ จงเจริญมั่นคง');">สราวุธ จงเจริญมั่นคง</a><br>
<a href="javascript:returnTextBox('หิรัญ ศรีสุพรรณ');">หิรัญ ศรีสุพรรณ</a><br>
<a href="javascript:returnTextBox('สุรเดช ศรีเจริญ');">สุรเดช ศรีเจริญ</a>
<!--  ============================== -->
</BODY>
</HTML>


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: pugkung ที่ 10 ตุลาคม 2007, 10:21:40
ไม่ทราบว่าใครพอมี สคริปทำ sub domain บ้างครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: hurahura ที่ 10 ตุลาคม 2007, 19:13:02
PHP มีวิธีหน่วงเวลาการทำงานหรือเปล่าครับ

อย่างเช่นเราจะสั่ง print เลข 10 ถึง 0 แต่เราไม่ได้ให้มัน ออกมาทีเดียว
แต่ให้มันออกมาแบบ
print 10 แล้วเว้นไป 1 วิ แล้ว print 9 เว้นอีก 1วิ แล้ว print 8 ไปจนถึง 0 ถึงจบการทำงาน


ทำได้หรือเปล่าครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: แบบนี้ไม่ต้องสืบ ที่ 10 ตุลาคม 2007, 19:31:19
PHP มีวิธีหน่วงเวลาการทำงานหรือเปล่าครับ

อย่างเช่นเราจะสั่ง print เลข 10 ถึง 0 แต่เราไม่ได้ให้มัน ออกมาทีเดียว
แต่ให้มันออกมาแบบ
print 10 แล้วเว้นไป 1 วิ แล้ว print 9 เว้นอีก 1วิ แล้ว print 8 ไปจนถึง 0 ถึงจบการทำงาน


ทำได้หรือเปล่าครับ



http://au2.php.net/sleep


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: hurahura ที่ 10 ตุลาคม 2007, 19:41:12
[url]http://au2.php.net/sleep[/url]


โอ้ว.. ขอบคุณมากครับ ที่แท้มันช่างง่ายดาย


หัวข้อ: ใครเป็นเซียน php ช่วยเขียนcode ลอจิก
เริ่มหัวข้อโดย: ncopmk ที่ 10 ตุลาคม 2007, 19:58:05
ลอจิก พวก แอน ออ นอท นอ เอ็กครูซีบ แนน ให้บ้างครับ
ขอบคุณครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 11 ตุลาคม 2007, 09:55:13
ไม่มีมาแชร์ครับ แต่มาถามขอความรู้หน่อย
PHP มีคำสั่งข้าม error หรือเปล่าครับ เช่นตัวอย่างของ asp
 on error resume next แล้ว ของ php มันเขียนไงครับ มีคำสั่งนี้หรือเปล่า



ไม่รู้เหมือนกันครับ เพราะไม่เคยคิดจะใช้
เจออะไรที่ Error ก็จะแก้ให้หมดครับ

ไม่ทราบว่าใครพอมี สคริปทำ sub domain บ้างครับ


http://www.thaiseoboard.com/index.php/topic,16485.0.html



หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: ball6847 ที่ 11 ตุลาคม 2007, 10:14:46
ไม่มีมาแชร์ครับ แต่มาถามขอความรู้หน่อย
PHP มีคำสั่งข้าม error หรือเปล่าครับ เช่นตัวอย่างของ asp
 on error resume next แล้ว ของ php มันเขียนไงครับ มีคำสั่งนี้หรือเปล่า


รุ้สึกจะมีคำสั่ง error_reporting() ลองเปิดคู่มือดูครับ
หรือไม่ก็ตรงไหนที่คดว่าจะ error ก็ ใส่ @ ดักหน้าฟังก์ชั่นไว้เลย


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 11 ตุลาคม 2007, 10:26:34
ไม่มีมาแชร์ครับ แต่มาถามขอความรู้หน่อย
PHP มีคำสั่งข้าม error หรือเปล่าครับ เช่นตัวอย่างของ asp
 on error resume next แล้ว ของ php มันเขียนไงครับ มีคำสั่งนี้หรือเปล่า



รุ้สึกจะมีคำสั่ง error_reporting() ลองเปิดคู่มือดูครับ
หรือไม่ก็ตรงไหนที่คดว่าจะ error ก็ ใส่ @ ดักหน้าฟังก์ชั่นไว้เลย


@ นั้นแค่ error control นะครับ
ถ้าเจอกับ error ประเภทตาย  สคริปก็จะตายไปเลย (เช่น require เวลา error สคริปจะหยุดไป)

ผมว่าคนถามน่าจะหมายถึง
เจอ error แล้วสคริปจะทำงานต่อเป็นอีกไลน์หนึ่งไปมากกว่าครับ

---------------------------------

ใช้เขียนแบบ exception แทนได้หรือเปล่าครับ

โค๊ด:
http://uk2.php.net/exceptions

ปล. PHP5 เท่านั้นนะ PHP4 ทำไม่ได้


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: nirutt ที่ 12 ตุลาคม 2007, 16:48:42
เข้ามาศึกษาบ้าง  :-*


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 12 ตุลาคม 2007, 17:48:08
เทคนิคฝึกสมองอย่างโปเกม่อน! เอ้ย EThaiZone

การเป็นโปเกม่อน ขั้นแรกตอนปล่อยไฟฟ้าเหมือนปิกาจูให้ได้!

(http://tbn0.google.com/images?q=tbn:NJcqUUEhif3VGM:http://www.jetro.go.jp/en/market/trend/topic/images/pikachu.jpg)

....   :o


เอาใหม่ๆ  การอยากจะเป็นคนเขียนโปรแกรม หลายครั้งสมองคนเรามักเกิด Overflow แทนคอมตรงหน้า

(อาการเบล่อๆ ของสมองยามที่คิดอะไรซ้ำๆ มากเกินไป)

ดังนั้นถ้าเรารู้สึกฝึกสมองอยู่เนืองๆ ก็จะไม่มีอะไรที่ยากเกินเข้าใจ

ของผมวิธีที่ใช้บ่อยๆ คือ หาเพลงที่ชอบเป็นเพลงสากล + เนื้อเพลง

แล้วเอามาหัดร้อง  เหมือนทำ 1 ได้ 2 ได้พักสมอง + ฝึกสมอง

ลองหาการฝึกอยู่เนืองๆ รับรอง จะปล่อยไฟฟ้าได้  :) (ยังไม่เลิก ^^')


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: hurahura ที่ 12 ตุลาคม 2007, 20:17:18
@ คืออะไรครับ ไว้ทำอะไรเหรอ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 12 ตุลาคม 2007, 20:22:56
@ ใน php คือตัวคุมการแสดง error ครับ

ใช้ใส่หน้าฟังค์ชั่นที่ต้องการคุมไว้

ยกตัวอย่างผมใช้คำสั่ง

<?
require("config.php");
?>

แต่แล้วไฟล์ config.php ไม่มี มันก็จะขึ้นมา

Warning: require(config.php) [function.require]: failed to open stream: No such file or directory in C:\AppServ\www\localhost\index.php on line 2

แต่ถ้าเราใช้ @ ใส่ไว้หน้าคำสั่ง

<?
@require("config.php");
?>

กดให้ตาย error ก็ไม่ขึ้นมาครับ

ข้อดีคือกรณี error แบบ mysql หรือเรียกไฟล์ มันก็จะไม่บอกชื่อไฟล์มาครับ
สรุปคือใช้ป้องกันข้อมูล และป้องกันเว็บ (เว็บที่มี error คงไม่น่าดู)

กรณีมีตัวแปร ก็คุมแบบนี้

<?
$list = @file("test.txt");
?>

 :)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: hurahura ที่ 16 ตุลาคม 2007, 11:48:59
คำเตือนเรื่องการใช้ include
สำคัญมากๆ เลยครับ

เนื่องจาก include / include_once / require / require_once ทั้งหมดนี่
เป็นการ เรียกมารวมกับ script ของเราแล้วทำการประมวลผลทั้งสิ้น
ทำให้เกิดกรณีแบบนี้ได้ครับ


main.php:
<?php
include("filecode.html");
?>

filecode.html:
<?php
echo("hacked");
?>

ลองเอาไปรันดูสิครับ

ยังไม่เข้าใจอ่ะครับ
ลองรันแล้วไม่เห็นเกิดอะไรขึ้น มันก็พิมพ์คำว่า hacked ออกมา ซึ่งมันก็ถูกแล้วไม่ใช่เหรอ  ???


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: hurahura ที่ 16 ตุลาคม 2007, 11:50:04
@ ใน php คือตัวคุมการแสดง error ครับ

ใช้ใส่หน้าฟังค์ชั่นที่ต้องการคุมไว้

ยกตัวอย่างผมใช้คำสั่ง

<?
require("config.php");
?>

แต่แล้วไฟล์ config.php ไม่มี มันก็จะขึ้นมา

Warning: require(config.php) [function.require]: failed to open stream: No such file or directory in C:\AppServ\www\localhost\index.php on line 2

แต่ถ้าเราใช้ @ ใส่ไว้หน้าคำสั่ง

<?
@require("config.php");
?>

กดให้ตาย error ก็ไม่ขึ้นมาครับ

ข้อดีคือกรณี error แบบ mysql หรือเรียกไฟล์ มันก็จะไม่บอกชื่อไฟล์มาครับ
สรุปคือใช้ป้องกันข้อมูล และป้องกันเว็บ (เว็บที่มี error คงไม่น่าดู)

กรณีมีตัวแปร ก็คุมแบบนี้

<?
$list = @file("test.txt");
?>

 :)

ขอบคุณมากเลยครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 17 ตุลาคม 2007, 10:32:35
อัพเดต!

สคริป Related จาก Google
พี่กูแกเปลี่ยน ก็เลยต้องเลยตามเลย  ::)

โค๊ด:
function ggkeyword($keyword) { 
$gg_result = file_get_contents("http://www.google.com/complete/search?hl=en&js=true&qu=".$keyword);
$gg_reg = '/window.google.ac.Suggest_apply\(frameElement, "'.$keyword.'", new Array\(2, "(.*)"\), new Array\(""\)\);/';
preg_match($gg_reg, $gg_result, $keylist);
$keybase = split('", "', $keylist[1]);
foreach($keybase as $key => $var) {
if($key%2 == 0) {
$keyname[count($keyname)] = $var;
} else {
$var = str_replace(array(" results", " result", ","), "", $var);
$keyhits[count($keyhits)] = $var;
}
}
return array($keyname, $keyhits);
}

Have a nice day!

ปล. เอาไป แก้ขัดก่อนนะ  ::)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: meeudon ที่ 17 ตุลาคม 2007, 10:35:13
กำลังศึกษาอยู่พอดีเลย  ขอบคุณครับ   :-*


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 17 ตุลาคม 2007, 10:44:03
อัพเดต2!

โค๊ด:
function ggkeyword($keyword) { 
$gg_result = file_get_contents("http://www.google.com/complete/search?hl=en&js=true&qu=".urlencode($keyword));
$gg_reg = '#"([^"]+)", "([^"]+) result[s]*"#';
preg_match_all($gg_reg, $gg_result, $keylist);
return array($keylist[1], str_replace(",", "", $keylist[2]));
}

ข้อดี
1. สั้นกว่าเดิม
2. เร็วกว่าเดิม
3. อันนี้สำคัญ น่าจะรองรับการเปลี่ยนชนิดส่งข้อมูลในอนาคตด้วย

ก็คงไม่ต้องอัพเดตกันอีกนาน  ;D


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 21 ตุลาคม 2007, 03:54:47
User Online TXT ฉบับ EThaiZone

ตอนแรกก็ไม่อยากทำหรอกครับ แต่ผมโหลดมาจาก php.deeserver.net แล้ว
มันใช้งานไม่ได้ เลยต้องแก้ ไปๆ มาๆ เลยได้มาแก้ใหม่เกือบทั้งหมดเลย
เหลือของเก่าแค่นิดเดียว (นิดเดียวแค่ไหน ลองไปหาโหลดมาเทียบกับตัวนี้ละกันนะ)

โค๊ด:
<?
session_start();
$file = dirname(__FILE__)."/"."useronline.txt";

$SID = session_id();
$time = time();
$exp = $time-300; //คือ 300 วินาที session จะหมดอายุ สามารถปรับค่าได้

$f=str_replace("\n", "", @file($file));
for ($i=0;$i<count($f);$i++) {
$data=explode("|",$f[$i]);
if ($data[0] != $SID && $data[1]>$exp) $last[] = $f[$i];
}

$last[] = "$SID|$time";

$f2=fopen($file,"w");
fputs($f2,implode("\n", $last));
fclose($f2);

$users_online = count($last);

?>

วิธีใช้

include ไว้บนสุดของสคริปใดๆ
แล้วเวลาแสดงผลก็ใช้

echo $users_online;

Have a nice day!  :)

[อัพเดต!]


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 29 ตุลาคม 2007, 13:28:47
ฟังค์ชั่นแปลงภาษาไทยเป็น utf8

อัพเดตหน่อย นี้เป็นฟังค์ชั่นที่ได้มาจาก narisa.com ครับ

โค๊ด:
<? 
function ThaiIToUTF8($in) {
$out = "";
for ($i = 0; $i < strlen($in); $i++)
{
if (ord($in[$i]) <= 126)
$out .= $in[$i];
else
$out .= "&#" . (ord($in[$i]) - 161 + 3585) . ";";
}
return $out;
}

// วิธีใช้
echo ThaiToUTF8("ทดสอบ Test");

?>

ซึ่งช่วยได้มากเลย ใช้งานได้ 100%
และนี้ ผมเอามาย่อมันเล่นๆ จนเหลือเท่านี้..

โค๊ด:
function ThaiToUTF8($in) {
for ($i = 0; $i < strlen($in); $i++)
$out .= ord($in[$i]) <= 126 ? $in[$i] : "&#" . (ord($in[$i]) - 161 + 3585) . ";";
return $out;
}

ไม่รู้จะย่อไปทำไม  :D


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: ball6847 ที่ 29 ตุลาคม 2007, 13:34:14
ทำมัยพักนี้ แลน้องโจ้สมองแล่นจัง เกิดไรขึ้นเนี่ย คิดไปเองป่าววา  :P


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: BosnoS ที่ 29 ตุลาคม 2007, 13:35:51
โอ้ว แหล่ง ทรัพย์สมบัติ อยู่ในนี้หมดเลย มั่วแต่ไปอ่านกระทู้ไหนละเนี้ยเรา

ว่าแต่ อยากได้ rss ของ google มีไหมอ่ะคัรบ ตรง การ ค้นหา นะครับ หาไม่เจอ เจอแต่ news.google.com


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 29 ตุลาคม 2007, 13:43:36
โอ้ว แหล่ง ทรัพย์สมบัติ อยู่ในนี้หมดเลย มั่วแต่ไปอ่านกระทู้ไหนละเนี้ยเรา

ว่าแต่ อยากได้ rss ของ google มีไหมอ่ะคัรบ ตรง การ ค้นหา นะครับ หาไม่เจอ เจอแต่ news.google.com

อ้าว  ตอนนี้ผมแปลกใจนะครับ ที่หลายคนไม่รู้ว่ามีอะไรบ้าง
Google เป็นสุดยอดของเครื่องมือของผมจริงๆ นะ

มี rss ตัวหนึ่งของ Google สามารถทำการค้นหา
Top ของ trend (หรือคีย์เวิร์ด) ที่นิยม (หรือถูกค้น)มากที่สุดในรายชั่วโมงได้ด้วย

ใครอยากรู้ pm ถาม  ไม่บอกง่ายๆ อิๆ  :D

(มีดีๆ อีกหลายตัวนะ ลองวิ่งให้ทั่วดูสิ)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: payu ที่ 29 ตุลาคม 2007, 13:52:55

อิอิ เจอแล้ว ... ขอบคุณคุณ EThaiZone ครับ .. ช่วยไกด์ให้



หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 29 ตุลาคม 2007, 14:17:28
ทำมัยพักนี้ แลน้องโจ้สมองแล่นจัง เกิดไรขึ้นเนี่ย คิดไปเองป่าววา  :P

พอคิดว่าตัวเองอาจอายุไม่ยืนในวันไหนก็ได้

ไฟมันก็เลยลุกครับ (ลุกแบบจี้ก้น)

 :D


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: dekmw ที่ 29 ตุลาคม 2007, 14:55:30
อยากรู้จักเลยครับว่าตัวแปรของphpภาษาC เหมือนกันรึเปล่าอ่ะครับ :-*


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: jiw ที่ 29 ตุลาคม 2007, 21:29:22
อยากรู้จักเลยครับว่าตัวแปรของphpภาษาC เหมือนกันรึเปล่าอ่ะครับ :-*


คร่าวๆ ที่ผมลองศึกษามา .. ใช้งานไม่ต่างกันเลยนะครับ ( สำหรับ เบื้องต้น ) ลึกๆไป ไม่แน่ใจ

เพราะกำลังศึกษาอยู่เช่นกัน


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: ball6847 ที่ 29 ตุลาคม 2007, 21:40:16

พอคิดว่าตัวเองอาจอายุไม่ยืนในวันไหนก็ได้

ไฟมันก็เลยลุกครับ (ลุกแบบจี้ก้น)

 :D

ที่บอกว่าลุกนี่ ต้องเห็นอะไรหวิวๆ เสียวๆก่อนป่ะถึงจะลุก  :D
อ่ะล้อเล่งน้าา

อยากรู้จักเลยครับว่าตัวแปรของphpภาษาC เหมือนกันรึเปล่าอ่ะครับ :-*

ผมไม่รู้อะไรมากนะ รู้แต่ว่า ภาษา PHP ถูกสร้างขึ้นมาด้วย ภาษา C
คนเป็น C มาก่อนเรียน PHP นิดเดวก็เปนแระ
คนเรียน PHP มาก่อน ย้อนไปเรียน C เอ้ะ งง งง (เป็นเฉพาะผมคนเดวมั้ง)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: dekmw ที่ 29 ตุลาคม 2007, 23:11:29
หุหุครับ เหอะๆๆพอดีเรียน ภาษาซีอยู่อ่ะครับ เลยอยากรู้  ขอบคุณมากครับ  พี่ๆๆ ;)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: isawa ที่ 30 ตุลาคม 2007, 13:21:50
โอ้ว แหล่ง ทรัพย์สมบัติ อยู่ในนี้หมดเลย มั่วแต่ไปอ่านกระทู้ไหนละเนี้ยเรา

ว่าแต่ อยากได้ rss ของ google มีไหมอ่ะคัรบ ตรง การ ค้นหา นะครับ หาไม่เจอ เจอแต่ news.google.com


อ้าว  ตอนนี้ผมแปลกใจนะครับ ที่หลายคนไม่รู้ว่ามีอะไรบ้าง
Google เป็นสุดยอดของเครื่องมือของผมจริงๆ นะ

มี rss ตัวหนึ่งของ Google สามารถทำการค้นหา
Top ของ trend (หรือคีย์เวิร์ด) ที่นิยม (หรือถูกค้น)มากที่สุดในรายชั่วโมงได้ด้วย

ใครอยากรู้ pm ถาม  ไม่บอกง่ายๆ อิๆ  :D

(มีดีๆ อีกหลายตัวนะ ลองวิ่งให้ทั่วดูสิ)


คุณ EThaiZone คล้ายๆตัวนี้รึป่าวคับ
โค๊ด:
http://www.hottrendlive.com



หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 02 พฤศจิกายน 2007, 23:30:54
โอ้ว แหล่ง ทรัพย์สมบัติ อยู่ในนี้หมดเลย มั่วแต่ไปอ่านกระทู้ไหนละเนี้ยเรา

ว่าแต่ อยากได้ rss ของ google มีไหมอ่ะคัรบ ตรง การ ค้นหา นะครับ หาไม่เจอ เจอแต่ news.google.com


อ้าว  ตอนนี้ผมแปลกใจนะครับ ที่หลายคนไม่รู้ว่ามีอะไรบ้าง
Google เป็นสุดยอดของเครื่องมือของผมจริงๆ นะ

มี rss ตัวหนึ่งของ Google สามารถทำการค้นหา
Top ของ trend (หรือคีย์เวิร์ด) ที่นิยม (หรือถูกค้น)มากที่สุดในรายชั่วโมงได้ด้วย

ใครอยากรู้ pm ถาม  ไม่บอกง่ายๆ อิๆ  :D

(มีดีๆ อีกหลายตัวนะ ลองวิ่งให้ทั่วดูสิ)


คุณ EThaiZone คล้ายๆตัวนี้รึป่าวคับ
โค๊ด:
[url]http://www.hottrendlive.com[/url]




คล้ายๆ ครับ  มันบอกอัพเดตใหม่สดอะ ลองเข้า Google ให้ทั่วครับ

และอย่างมองในมุมที่คนปกติทั่วไปเขามองกัน ของดีตรึม


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 02 พฤศจิกายน 2007, 23:33:07
ฟังค์ชั่นแปลง tis620 เป็น utf-8 อีกตัวครับ

เป็นแบบชนิดแปลงเป็นอักขระ (ผมบอกไม่ถูกเพราะอ่านมันไม่ออก อิๆ)

เอาเป็นว่าลองใช้ดูนะครับ

โค๊ด:
function tis2utf8($tis) {
   for( $i=0 ; $i< strlen($tis) ; $i++ ){
      $s = substr($tis, $i, 1);
      $val = ord($s);
      if( $val < 0x80 ){
         $utf8 .= $s;
      } elseif ( ( 0xA1 <= $val and $val <= 0xDA ) or ( 0xDF <= $val and $val <= 0xFB ) ){
         $unicode = 0x0E00 + $val - 0xA0;
         $utf8 .= chr( 0xE0 | ($unicode >> 12) );
         $utf8 .= chr( 0x80 | (($unicode >> 6) & 0x3F) );
         $utf8 .= chr( 0x80 | ($unicode & 0x3F) );
      }
   }
   return $utf8;
}

Credit: http://www.mindphp.com/modules.php?name=News&file=article&sid=48

คนเขียนฟังค์ชั่นตัวนี้ เก่งจริงๆ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: isawa ที่ 05 พฤศจิกายน 2007, 13:12:34
โอ้ว แหล่ง ทรัพย์สมบัติ อยู่ในนี้หมดเลย มั่วแต่ไปอ่านกระทู้ไหนละเนี้ยเรา

ว่าแต่ อยากได้ rss ของ google มีไหมอ่ะคัรบ ตรง การ ค้นหา นะครับ หาไม่เจอ เจอแต่ news.google.com


อ้าว  ตอนนี้ผมแปลกใจนะครับ ที่หลายคนไม่รู้ว่ามีอะไรบ้าง
Google เป็นสุดยอดของเครื่องมือของผมจริงๆ นะ

มี rss ตัวหนึ่งของ Google สามารถทำการค้นหา
Top ของ trend (หรือคีย์เวิร์ด) ที่นิยม (หรือถูกค้น)มากที่สุดในรายชั่วโมงได้ด้วย

ใครอยากรู้ pm ถาม  ไม่บอกง่ายๆ อิๆ  :D

(มีดีๆ อีกหลายตัวนะ ลองวิ่งให้ทั่วดูสิ)


คุณ EThaiZone คล้ายๆตัวนี้รึป่าวคับ
โค๊ด:
[url]http://www.hottrendlive.com[/url]




คล้ายๆ ครับ  มันบอกอัพเดตใหม่สดอะ ลองเข้า Google ให้ทั่วครับ

และอย่างมองในมุมที่คนปกติทั่วไปเขามองกัน ของดีตรึม


จะลองดูครับ  :D  ว่าแต่ของดีนี่แอบซ่อนแถวๆตรงไหนครับ จะได้จับมายำลงเวบ  ;D


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: ฟาร์มเฮ้า ที่ 08 พฤศจิกายน 2007, 23:25:57
คุณ EThaiZone ครับ ผมเอาสคริปแสดงชื่อไฟล์ใน dir ไปประยุกต์ใช้ แต่ตอนนี้มันแสดงชื่อไฟล์ไม่เรียงลำดับกันน่ะครับ คือสลับไปมา 5,2,7,1,9

ถ้าอยากให้มันเรียงชื่อไฟล์แบบเรียงตามชื่อไฟล์ได้ไหมครับ

โค๊ด:
<?php
$d 
dir("pic");
$count=0;
while (
false !== ($entry $d->read())) {
   if(
$entry<>"." && $entry<>"..") {
       
$count++;
        echo 
"$count > $entry<br>\n";
   }
}
$d->close();
?>

ลองบน localhost มันเรียง ทำไมลองบน server จริงมันไม่เรียงหว่า

------------

อ่า ได้ละครับ เห็นคุณ EThaiZone ไม่ online เลยนั่งมั่วอยู่พักนึง
โค๊ด:
<?php
$d 
dir($wesds);
$count=0;
$odd = array();
while (
false !== ($entry $d->read())) {
   if(
$entry<>"." && $entry<>"..") {
       
$count++;
array_push($odd,$entry);
   }

}
sort($odd);
$dd sizeof($odd);
for(
$i 0$i<$dd$i++) {
echo 
$odd[$i]."<br>";
}
$d->close();
?>


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 22 พฤศจิกายน 2007, 16:48:28
Code ของคุณฟาร์มเฮ้าดูสะอาดกว่าของผมเยอะเลย  :P

-------------------------------------

ไม่อัพเดตบ้างเดียวกระทู้จะเน่า
อ่านชื่อคุณฟาร์มเฮ้าแล้วพาลนึกถึงขนมปัง.. พอนึกไปมากลัวกระทู้บูดเพราะไม่อัพเดต (เกี่ยวกันไหมเนี่ย  :D)

เข้าเรื่องวันนี้พอดีได้ทัศนา php.net จนสะดุดกับฟังค์ชั่นหนึ่ง เป็นอะไรที่สุดยอด

glob()
โค๊ด:
http://th.php.net/glob

ความสามารถหลักที่ดูง่ายอย่างเหลือเชื่อคือ
แสดงรายชื่อไฟล์ ณ พาทนั้นๆ
ฟังดูงงๆ ยกตัวอย่างเช่น

1.ต้องการรายการไฟล์นามสกุล txt
print_r(glob("*.txt"));

2.ต้องการรายการไฟล์ที่ขั้นต้นด้วยตัว a ในโฟลเดอร์ images
print_r(glob("images/a*.jpg"));

3.ต้องการแสดงทุกไฟล์และโฟล์เดอร์ในนั้นทั้งหมด
print_r(glob("*"));

4.ต้องการแสดงเฉพาะไฟล์ทั้งหมด ไม่เอาโฟลเดอร์
print_r(glob("*.*"));

5.ต้องการแสดงเฉพาะโฟลเดอร์ทั้งหมด ไม่เอาไฟล์
print_r(glob("*", GLOB_ONLYDIR));

6.ต้องการแสดงไฟล์นามสกุล php และ txt
print_r(glob("{*.php,*.txt}",GLOB_BRACE));


ปัญหาหนึ่งที่จะเกิดขึ้นกับฟังค์ชั่นนี้คือ.. Case Sensitive
วิธีแก้คือใช้ sql_regcase()
print_r(glob(sql_regcase("*.txt")));


เท่านี้ก็จะแก้ปัญหาได้แล้วครับ  :)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 22 พฤศจิกายน 2007, 20:45:05
ขอโพสอีกหนึ่งเรื่องรวมไว้หน่อย

การเขียน Regex เพื่อเช็คภาษาไทย

กรณีถ้าเซฟไฟล์เป็น Ascii (ไฟล์ปกติ)

โค๊ด:
$var = '<img src="อยากได้ข้อมูลที่อยู่ตรงนี้">
<a href="อยากได้ข้อมูลที่อยู่ตรงนี้"</a>';

preg_match_all('#[\xA1-\xF9]#', $var, $match);

print_r($match);

กรณีถ้าเซฟไฟล์เป็น UTF-8 (รองรับหลายภาษาในไฟล์เดียวได้)

โค๊ด:
$var = '<img src="อยากได้ข้อมูลที่อยู่ตรงนี้">
<a href="อยากได้ข้อมูลที่อยู่ตรงนี้"</a>';

preg_match_all('#[ก-๙]#u', $var, $match);

print_r($match);


กรณีล่างเป็นอะไรที่ตกม้าตายเอามากๆ  :P


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 27 พฤศจิกายน 2007, 08:54:45
ช่วงนี้เป็นอะไรที่กำลังฮอทกับโดเมนภาษาไทยบนไทยเสียว

ัวันนี้เลยมีอะไรมาให้เล่น กับคลาสแปลง UTF8 เป็น punycode

IDNA Convert
โค๊ด:
http://www.phpclasses.org/browse/package/1509.html

วิธีใช้ก็ง่ายนิดเดียว!

โค๊ด:
$text = 'ฝากรูป.com';
require_once('idna_convert.class.php');
$IDN = new idna_convert();

//แปลงเป็น punycode
$encoded = $IDN->encode($text);
echo $encoded;

//แปลงกลับเป็น utf8
$decoded = $IDN->decode($encoded);
echo $decoded;

หรือใครขี้เกียจใช้ ก็เว็บนี้ได้เหมือนกัน
โค๊ด:
http://idnaconv.phlymail.de

 :)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 27 พฤศจิกายน 2007, 10:39:55
ฟังค์ชั่นแปลง utf8 กลับเป็น tis620

โค๊ด:
function utf82tis($string) {
  $str = $string;
  $res = "";
  for ($i = 0; $i < strlen($str); $i++) {
    if (ord($str[$i]) == 224) {
      $unicode = ord($str[$i+2]) & 0x3F;
      $unicode |= (ord($str[$i+1]) & 0x3F) << 6;
      $unicode |= (ord($str[$i]) & 0x0F) << 12;
      $res .= chr($unicode-0x0E00+0xA0);
      $i += 2;
    } else {
      $res .= $str[$i];
    }
  }
  return $res;
}

เครดิต
โค๊ด:
http://atiahcapus.spaces.live.com/


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: icez ที่ 27 พฤศจิกายน 2007, 12:59:02
รวบ code ให้อีกที

โค๊ด:
function utf82tis($string) {
  $str = $string;
  $res = "";
  $strlen = strlen($str);
  for ($i = 0; $i < $strlen; $i++) {
    if (ord($str[$i]) == 224) {
      $unicode = ((ord($str[$i+2]) & 0x3F) | ((ord($str[$i+1]) & 0x3F) << 6)) | ((ord($str[$i]) & 0x0F) << 12);
      $res .= chr($unicode-0x0E00+0xA0);
      $i += 2;
    } else
      $res .= $str[$i];
  }
  return $res;
}

ปล. ตูเกลียด shift bit


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: aomnaruk ที่ 30 พฤศจิกายน 2007, 18:54:07
เอาไว้ดึง Google Keyword Suggestion

โค๊ด:
<? 
/**
* XMLToArray Generator Class
* @author  :  MA Razzaque Rupom <[email protected]>, <[email protected]>
*             Moderator, phpResource (LINK1http://groups.yahoo.com/group/phpresource/LINK1)
*             URL: LINK2http://www.rupom.infoLINK2
* @version :  1.0
* @date       06/05/2006
* Purpose  : Creating Hierarchical Array from XML Data
* Released : Under GPL
*/

class XmlToArray
{
   
    var $xml='';
   
    /**
    * Default Constructor
    * @param $xml = xml data
    * @return none
    */
   
    function XmlToArray($xml)
    {
       $this->xml = $xml;   
    }
   
    /**
    * _struct_to_array($values, &$i)
    *
    * This is adds the contents of the return xml into the array for easier processing.
    * Recursive, Static
    *
    * @access    private
    * @param    array  $values this is the xml data in an array
    * @param    int    $i  this is the current location in the array
    * @return    Array
    */
   
    function _struct_to_array($values, &$i)
    {
        $child = array();
        if (isset($values[$i]['value'])) array_push($child, $values[$i]['value']);
       
        while ($i++ < count($values)) {
            switch ($values[$i]['type']) {
                case 'cdata':
                array_push($child, $values[$i]['value']);
                break;
               
                case 'complete':
                    $name = $values[$i]['tag'];
                    if(!empty($name)){
                    $child[$name]= ($values[$i]['value'])?($values[$i]['value']):'';
                    if(isset($values[$i]['attributes'])) {                   
                        $child[$name] = $values[$i]['attributes'];
                    }
                }   
              break;
               
                case 'open':
                    $name = $values[$i]['tag'];
                    $size = isset($child[$name]) ? sizeof($child[$name]) : 0;
                    $child[$name][$size] = $this->_struct_to_array($values, $i);
                break;
               
                case 'close':
                return $child;
                break;
            }
        }
        return $child;
    }//_struct_to_array
   
    /**
    * createArray($data)
    *
    * This is adds the contents of the return xml into the array for easier processing.
    *
    * @access    public
    * @param    string    $data this is the string of the xml data
    * @return    Array
    */
    function createArray()
    {
        $xml    = $this->xml;
        $values = array();
        $index  = array();
        $array  = array();
        $parser = xml_parser_create();
        xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
        xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
        xml_parse_into_struct($parser, $xml, $values, $index);
        xml_parser_free($parser);
        $i = 0;
        $name = $values[$i]['tag'];
        $array[$name] = isset($values[$i]['attributes']) ? $values[$i]['attributes'] : '';
        $array[$name] = $this->_struct_to_array($values, $i);
        return $array;
    }//createArray
   
   
}//XmlToArray

if(isset($_GET['q'])){
$query = urlencode($_GET['q']);
}else{
$query = 'loan';
}
$query = str_replace('-','+',$query);

//XML Data


$xml_data = file_get_contents("http://www.google.com/complete/search?hl=en&xml=true&qu=".$query);
//Creating Instance of the Class
$xmlObj    = new XmlToArray($xml_data);
//Creating Array
$arrayData = $xmlObj->createArray();



for($i=0;$i<count($arrayData[toplevel][CompleteSuggestion]);$i++){
echo "<a href=".'"./'.$arrayData[toplevel][CompleteSuggestion][$i][suggestion][data].'.html">'.$arrayData[toplevel][CompleteSuggestion][$i][suggestion][data]."</a>" .  "<br>";



}
?>



หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: thenetxx ที่ 12 ธันวาคม 2007, 19:15:45
คุณ EThaiZone ครับ ผมเอาสคริปแสดงชื่อไฟล์ใน dir ไปประยุกต์ใช้ แต่ตอนนี้มันแสดงชื่อไฟล์ไม่เรียงลำดับกันน่ะครับ คือสลับไปมา 5,2,7,1,9

ถ้าอยากให้มันเรียงชื่อไฟล์แบบเรียงตามชื่อไฟล์ได้ไหมครับ

โค๊ด:
<?php
$d 
dir("pic");
$count=0;
while (
false !== ($entry $d->read())) {
   if(
$entry<>"." && $entry<>"..") {
       
$count++;
        echo 
"$count > $entry<br>\n";
   }
}
$d->close();
?>

ลองบน localhost มันเรียง ทำไมลองบน server จริงมันไม่เรียงหว่า

------------

อ่า ได้ละครับ เห็นคุณ EThaiZone ไม่ online เลยนั่งมั่วอยู่พักนึง
โค๊ด:
<?php
$d 
dir($wesds);
$count=0;
$odd = array();
while (
false !== ($entry $d->read())) {
   if(
$entry<>"." && $entry<>"..") {
       
$count++;
array_push($odd,$entry);
   }

}
sort($odd);
$dd sizeof($odd);
for(
$i 0$i<$dd$i++) {
echo 
$odd[$i]."<br>";
}
$d->close();
?>

ตรงนี้มี function ของ php ชื่อ array_sort();  อะครับ ลองดู format ใน php.net ได้ครับ  ^__^


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: เรารักนายนะน้องฟี่ ที่ 13 ธันวาคม 2007, 20:52:26
รบกวนขอถาม เรื่องหัวข้อเออเร่อหน่อยครับ  ว่าแต่ละอันหมายความว่ายังไง

PHP Notice:  Undefined index:

PHP Notice:  Undefined variable:

PHP Warning:  mysql_num_rows(): supplied argument is not a valid MySQL result resource

PHP Warning:  session_start() [<a href='function.session-start'>function.session-start</a>]: open(/var/lib/php/session/sess_8jdhhp8ev7h82euguffrrvkoo7, O_RDWR) failed: Permission denied (13)

PHP Notice:  Use of undefined constant host - assumed 'host'

PHP Notice:  Use of undefined constant scheme - assumed 'scheme'

PHP Notice:  Use of undefined constant path - assumed 'path'

PHP Notice:  Undefined variable: post in

ขอบคุณครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 13 ธันวาคม 2007, 21:08:28
PHP Notice:  Undefined index:

- ยังไม่ได้กำหนดอินเด็ก

PHP Notice:  Undefined variable:

- ยังไม่ได้กำหนดตัวแปร

PHP Warning:  mysql_num_rows(): supplied argument is not a valid MySQL result resource

- ข้อมูลที่ส่งไปยัง mysql_num_rows() ไม่ใช่ผลการคืนค่าจาก mysql

PHP Warning:  session_start() [<a href='function.session-start'>function.session-start</a>]: open(/var/lib/php/session/sess_8jdhhp8ev7h82euguffrrvkoo7, O_RDWR) failed: Permission denied (13)

- ไม่สามารถเก็บ session ได้ ติดการอนุญาต (ถ้าเข้าใจไม่ผิดนะ)

PHP Notice:  Use of undefined constant host - assumed 'host'
PHP Notice:  Use of undefined constant scheme - assumed 'scheme'
PHP Notice:  Use of undefined constant path - assumed 'path'

- ใช้ค่าคงที่ ที่ไม่ได้ถูกกำหนด (แยกตามชื่อไป)

PHP Notice:  Undefined variable: post in

- ก็เหมือนๆ กับข้างบน



ประมาณนี้แหละครับ หวังว่าจะบอกถูกนะ  :P


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: เรารักนายนะน้องฟี่ ที่ 13 ธันวาคม 2007, 21:11:29
ขอบคุณมากๆครับ คงต้องเปลี่ยน สคิปอีกครั้ง หรือไม่ก็ เปลี่ยน vps แล้วมั๊งเนี่ย  :'(


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 14 ธันวาคม 2007, 11:44:31
ความเป็นไปได้ของ 1 ใน 100

พอดีวันนี้ทำวิจัย (อีกความหมายคือ วันนี้ไร้สาระ  :D)
ถ้าเกิดสุ่มตัวเลขระหว่าง 1 ถึง 100 ในจำนวนร้อยครั้ง
จะมีอัตราซ้ำอยู่ที่เท่าไร ควรสุ่มด้วยวิธีไหนเลขถึงกระจายมากที่สุด

วิธีแรก วนลูป 100 ครั้ง แล้วใช้ rand()

โค๊ด:
$base = 100;
$loop = 100;
for($i=0; $i<$loop; $i++){
$n[] = rand(1, $base);
}
$n = array_count_values($n);
arsort($n);
print_r($n);

วิธีสอง สร้างฐาน array 1 ถึง 100 แล้ว shuffle แล้วเรียกค่าแรกสุดมา

โค๊ด:
$base = 100;
$loop = 100;
$b = range(1, $base);
for($i=0; $i<$loop; $i++){
shuffle($b);
$n[] = $b[0];
}
$n = array_count_values($n);
arsort($n);
print_r($n);

แต่.. ความจริง ทั้งสองวิธีนี้ก็ให้ผลเหมือนกันๆ (ฮา)  ;D

เพียงแต่ที่อยากนำเสนอจริงๆ คือ ช่วงของข้อมูลที่นำมาใช้สุ่มนี้คือ 1 ถึง 100
ซึ่งจากผลการทดลอง ยังมีอัตราการกระจายค่าแค่ 60%
จึงทำให้เราอาจอยากสุ่มค่าที่ต้องการแบบกระจายมากไม่ได้ (ก็อยากให้ครบ 100% ว่างั้นเถอะ)

แต่ถ้าลองปรับ $loop ให้มากกว่า $base อยู่ที่ 10 เท่า
จะสามารถเติมเต็มส่วนที่ขาดไปได้จนครบ 100% ครับ

ปล. บทความนี้จะมีประโยชน์หรือเปล่าอยู่ที่คนอ่านนะครับ  :)
ปล2. ถามว่า แค่ rand ก็พอแล้วไม่ใช่เหรอ แต่ว่า rand ในเครื่องผมมันชอบออกขึ้นต้นด้วย 2 4 6 7
และลงท้ายด้วยเลขคู่ ซึ่งดูแล้ว.. เดาทางง่ายจัง (ฮา)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 14 ธันวาคม 2007, 11:58:30
การเขียนตรวจสอบ Keyword Density อย่างง่ายๆ

โค๊ด:
$text = 'Game Flier’s Cuti-Cuti Gamers Brought The House Down
One of them was Ragnarok Online YelloX Cup 3vs3 PVP competition. On hand at the prize giving ceremony of the RO Cup was the hawt local supermodel, Amber Chia. Spending quite some time at the even despite her busy schedule, ...
Campanha de lan
Campanha promocional de Ragnar.
Falling Bishop
This is RO (Ragnarok Online) related stoof. :c So there was recently a bugged MVP (boss monster) called Falling Bishop/Fallen Bishop Hibard. Apparently it was bugged, because it gave tons of experience but was easy to kill. ...
The Hell Is
The hell is there only one english european rp server de vanyar de buy lotroeu gold usd 29 server name lord of the rings online mythos ragnarok online server azshara charakter vanyar soweit ich das weiss haben wir 50 und 1stinrings. ...
';

$text = eregi_replace("[^a-z0-9 ]", "", strtolower($text));
$text = preg_replace("#[\s]+#", " ", $text);
$set = explode(" ", trim($text));
$set = array_count_values($set);
arsort($set);
print_r($set);

ไม่ขออธิบายมาก ใครไม่เข้าใจฟังค์ชั่นไหน ค้นจาก php.net/ชื่อฟังค์ชั่น

 ::)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 20 ธันวาคม 2007, 14:46:23
อัพเดตหน่อย พักนี้เข้าบอร์ดน้อยลง เพราะหายไปทำงานอื่น  :P

พอดีเจอที่ต้องใช้งาน เลยเอามาฝาก
โค้ดทำ highlight keyword ครับ
ใช้กับเวลาคนเจอเว็บเราจาก search engine ก็จะสามารถ
highlight คำนั้นๆ ให้ชักขึ้นมา เหมาะมากๆ
(ใครเขียนสคริปขายก็ลองเอาไปใส่ดูครับ ลูกค้าคงดีใจ)

โค๊ด:
http://textsnippets.com/posts/show/231

ลองเอาไปเล่นดูนะครับ (ลองเขียนเพิ่มเป็นเช่น จับคู่สีให้แสดงสีต่างกันต่อคีย์ก็ดีนะครับ สวยดี อิๆ)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 24 ธันวาคม 2007, 17:12:20
วันนี้กลับมาอัพเดตเล็กๆ (แต่ใหญ่ยิ่ง)

พอดีเขียนอีกตัวต้องมาใช้ คือเรื่องของเรื่อง
- ผมขี้เกียจเซ็ต cron
- cron เวลาตั้งเวลา มันจะเป็นแบบตายตัว ผมไม่ชอบ
- ผมอยากได้อะไรที่คล้าย cron แต่ทำงานแบบสุ่ม..

คือเป้าหมายจริงๆ อยากทำเว็บให้อัพเดตเหมือนคนอัพเอง  ;D

มันก็เลยได้ออกมาแบบนี้ครับ

Random Cron Script

โค๊ด:
<?php

#########################
##  Random Cron Script
##  By EThaiZone.Com
#########################

$cronlist = array(
"http://www.url1.com/",
"http://www.url2.com/"
);

//Path: Cache file for check cron
$file "cron.tmp";

if(
file_exists($file)) {
$cron file_get_contents($file);

if( (time() - filemtime($file)) > intval($cron)) {
unlink($file);
echo "Cron Active!<br/>\n";
//Loop cron list
array_walk($cronlist'file_get_contents');
}
}

if(!
file_exists($file)) {

//Random time (sec)
$cron rand(5760068400);

$fp fopen($file,"w+");
fwrite($fp,$cron);
@fclose($fp);
echo "Set New Cron!";
}

?>

ใช้ดีไม่ดีก็บอกด้วยนะครับ เพราะยังไม่ได้ใช้จริงเลย  ;D


ไอ้ที่ทำเรื่อยๆ นี้ ก็เว็บ adsense เนี่ยแหละครับ
แต่พักนี้ขี้เกียจส่งท้ายปีเก่า เล่นแต่ FFX บนเครื่อง PS2 ที่ซื้อจากคุณ Kingmaster

เล่นซะเพลินถึงตอนทีดัสได้จานบิน เอ่ย เรือบิน   :D :D


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 28 ธันวาคม 2007, 12:28:45
โอ้ย เงียบๆ ชะมัด เศรษฐกิจเมื่อไรจะดีขึ้นน้อ

------------------------------------

พอดีหลายวันนี้บ้าแต่ ยูทูป เลยเขียนสคริปใช้เอง ใช้ดึงพาทโดยตรงของยูทูป (จะเซฟว่างั้น)

ลองเอาไปใช้ดูกันนะครับ ขำๆ


โค๊ด:
<?
#########################
##  Get Youtube Flv Path Script
##  By EThaiZone.Com
#########################

function curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"User-Agent: " . $_SERVER["HTTP_USER_AGENT"],
"Accept-Charset: utf-8"));
curl_setopt($ch, CURLOPT_HEADER, 1);
$results = curl_exec ($ch);
curl_close ($ch);
return $results;
}

echo '<form action="" mothod="get"><input name="video" size="20" value="'.$_GET['video'].'"> <input type="submit" name="submit" value="Gotta IT!"></form>';

if(!empty($_GET['video'])) {
$u = parse_url($_GET['video']);
parse_str($u['query']);

if(!empty($v)) {
$results = curl("http://www.youtube.com/v/".$v);
eregi("Location: ([^\r]+)", $results, $match);

$u = parse_url($match[1]);
parse_str($u['query']);

$results = curl("http://www.youtube.com/get_video?video_id=".$v."&t=".$t);
eregi("Location: ([^\r]+)", $results, $match);

echo '<a href="'.$match[1].'">Download</a>';
}
}
?>


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 28 ธันวาคม 2007, 15:49:48
แจ้งการปลดประจำการกระทู้ PHP

จะไม่มีการอัพเดตอีกแล้ว (ทุุกครั้งที่อัพ ก็ทุบหม้อข้าวตัวเองไปหลายครั้ง  :D)

ขอบคุณที่ติดตาม วันหน้าฟ้าใหม่คงจะมีกระทู้อื่นให้อ่านกัน  ::)

ปล. อาุยุกระทู้เกือบ 9 เดือน ^^"


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: tenzamak ที่ 28 ธันวาคม 2007, 16:02:20
เสียดายง่าๆ อย่าทิ้งไปเลยครับนานๆเข้ามาอัพเดทก็ยังดี


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: jiw ที่ 28 ธันวาคม 2007, 16:05:26
ปลดก็ได้ครับ ...

แต่เดี๋ยวผมมาช่วยดัน


ช่วงนี้กำลังพยายามศึกษา php อยู่ .. ฉะนั้น คงได้มาดันบ่อยๆ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: ball6847 ที่ 28 ธันวาคม 2007, 16:20:14
แหมๆ นานๆมาต่อก็ได้ ทุกหม้อข้าวที่น้องโจ้ทุบทิ้ง มันช่วยให้พี่ๆ น้องๆ ไทยเสียวหุงข้าวกันเองเป็นนะครับ
ผมเองก็ได้อะไรดีดีจากกระทู้นี้เยอะแยะง่ะ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 02 มกราคม 2008, 23:54:46
มาโพสนิดหน่อย พอดีเห็นแล้วมันอดไม่ไหว ของขึ้น  :D

-----------------------------
จากโพสนี้ http://www.thaiseoboard.com/index.php/topic,6920.msg255006.html#msg255006
ที่ผมเคยเขียน การเขียนตรวจสอบ Keyword Density อย่างง่ายๆ

พอดีได้เห็นเว็บเช็คของจริงที่คุณ win นำมาโพสใน
http://www.thaiseoboard.com/index.php/topic,21039.0.html

ผมเลยลองเขียนเลียนแบบดู พบว่าไม่ง่ายเลย แต่ก็พอไหว ลองเอาไปใช้กันดูนะครับ  :)

โค๊ด:
<?
#########################
##  Check Keyword Density Script V1.0
##  By EThaiZone.Com
#########################

$url = "http://www.yahoo.com";

$text = file_get_contents($url);
$text = strtolower(eregi_replace("<[^>]+>", ' ', $text)); //Strip tags
$text = str_replace(array("\r", "\n"), ' ', $text); //Strip new line and return
$text = eregi_replace("('|&#39;[A-Za-z0-9]+) ", " ", $text); //Strip Abbreviation
$text = eregi_replace("&[a-z]+;", " ", $text); //Strip HtmlEntitle
$text = eregi_replace("[^a-z0-9 ]", "", $text); //Strip all out except a-z0-9
$text = preg_replace("#[\s]+#", " ", $text); //Strip multi space
$set = explode(" ", trim($text));

$delword = array("a", "and", "the", "com", "net", "org", "for", "by", "or", "i", "you", "we", "they", "he", "she", "it", "is", "am", "are", "was", "were", "be", "been", "has", "have", "has", "do", "does", "did", "can", "could", "will", "would", "shall", "if", "not", "then");
function check($var) {
global $delword;
$len = strlen($var);
return($len > 2 &&$len < 14 && !eregi('[0-9]', $var) && !in_array($var, $delword));
}
$set = array_filter($set, "check");
$set = array_count_values($set);
arsort($set);
$sum = array_sum($set);

echo "<table><tr><td><b>Keyword</b></td><td><b>Count</b></td><td><b>Density</b></td></tr>";
foreach ($set as $key => $value) {
$pc = sprintf("%0.2f", ($value*100)/$sum);
echo "<tr><td>".$key."</td><td>".$value."</td><td>".$pc."%</td></tr>";
}
echo "</table>";
?>

โค้ดนี้เป็นแค่เบื้องต้นนะครับ ต้องปรับปรุงตรงฐานข้อมูลที่ใช้แยกออก (คำกริยาต่างๆ และอื่นๆ)

หวังว่าจะได้เทคนิคอะไรไปบ้างนะครับ pm มาคุยกันได้นะ  :)

ปล. สุดท้ายก็อดโพสไม่ได้ 555+


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: pugkung ที่ 03 มกราคม 2008, 10:51:19
อ้างถึง
<?
#########################
##  Check Keyword Density Script V1.0
##  By EThaiZone.Com
#########################

$url = $_POST['url'];
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<label for="url">URL</label><input type="text" name="url" value="<?=$url?>">  (insert url *example <i>www.yourdomain.com</i>)<br>
<input type="submit" value="Go">
</form>
<?
if(!empty($url)){
$text = file_get_contents($url);
$text = strtolower(eregi_replace("<[^>]+>", ' ', $text)); //Strip tags
$text = str_replace(array("\r", "\n"), ' ', $text); //Strip new line and return
$text = eregi_replace("('|&#39;[A-Za-z0-9]+) ", " ", $text); //Strip Abbreviation
$text = eregi_replace("&[a-z]+;", " ", $text); //Strip HtmlEntitle
$text = eregi_replace("[^a-z0-9 ]", "", $text); //Strip all out except a-z0-9
$text = preg_replace("#[\s]+#", " ", $text); //Strip multi space
$set = explode(" ", trim($text));

$delword = array("a", "and", "the", "com", "net", "org", "for", "by", "or", "i", "you", "we", "they", "he", "she", "it", "is", "am", "are", "was", "were", "be", "been", "has", "have", "has", "do", "does", "did", "can", "could", "will", "would", "shall", "if", "not", "then");
function check($var) {
   global $delword;
   $len = strlen($var);
   return($len > 2 &&$len < 14 && !eregi('[0-9]', $var) && !in_array($var, $delword));
}
$set = array_filter($set, "check");
$set = array_count_values($set);
arsort($set);
$sum = array_sum($set);

echo "<table><tr><td><b>Keyword</b></td><td><b>Count</b></td><td><b>Density</b></td></tr>";
foreach ($set as $key => $value) {
   $pc = sprintf("%0.2f", ($value*100)/$sum);
   echo "<tr><td>".$key."</td><td>".$value."</td><td>".$pc."%</td></tr>";
}
echo "</table>";
}
?>

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

ปล.ขอบคุณ EThaiZone มาก ๆ เด้อ  :-*


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: bankkungz ที่ 08 มกราคม 2008, 22:36:39
ผมขอถาม 1 ข้อครับ

ถ้าผมจะทำฟอร์มเขียนข้อความแล้วมี 2 ปุ่มให้กดคือ เก็บลงฐานข้อมูล กับ แสดงตัวอย่าง
(เหมือนกับฟอร์มตอบกระทู้ของ smf นี่แหละ)

จะเขียนยังไงดีครับ

ใช้ get หรือ post ยังไงดี งงไปหมดแล้วครับ

 :-* :-*


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 10 มกราคม 2008, 22:19:36
ผมขอถาม 1 ข้อครับ

ถ้าผมจะทำฟอร์มเขียนข้อความแล้วมี 2 ปุ่มให้กดคือ เก็บลงฐานข้อมูล กับ แสดงตัวอย่าง
(เหมือนกับฟอร์มตอบกระทู้ของ smf นี่แหละ)

จะเขียนยังไงดีครับ

ใช้ get หรือ post ยังไงดี งงไปหมดแล้วครับ

 :-* :-*

เพิ่งเห็น - -* (เพราะกำลังจะค้นข้อมูลของเก่า นี้คลังข้อมูลผมเลยล่ะ)

อันนี้ใช้ get หรือ post ก็ได้ครับ

เทคนิคอยู่ที่ปุ่ม ซึ่งทั้ง เก็บลงฐานข้อมูล กับ แสดงตัวอย่าง
ต้องเป็น type=submit หมดครับ

เพียงแต่ ต้องตั้งข้อมูลมันให้ต่างกัน ยกตัวอย่างของ smf (ผมตัดทอนให้เหลือส่วนสำคัญ)
<input type="submit" name="post" value="ตั้งกระทู้"/>
<input type="submit" name="preview" value="แสดงตัวอย่าง"/>

แล้วทีนี้ของ smf เป็นแบบ post
ซึ่งแน่นอนว่า ต้องเขียน if 2 ตัวแยกกันตรวจครับ

if(isset($_POST['preview'])) {
//แสดงตัวอย่าง
} else if(isset($_POST['post'])) {
//ส่งข้อมูล
}

ประมาณนี้ครับ ^^


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: hurahura ที่ 11 มกราคม 2008, 02:23:43
กระทู้นี้มันสุดยอดจริงๆ

ไม่มีอะไร อยากบอกแค่นี้แหละ แบบว่ามันโดน


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: KRTINetwork ที่ 11 มกราคม 2008, 04:42:12
อ่านกระทู้นี้ ดีกว่าไปเรียนอีกคับ ::)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: backpacker ที่ 12 มกราคม 2008, 19:17:19
เปิดห้องแชร์ PHP ครับ

ตอนแรกก็ไม่นึกอะไร แต่พอมานึกว่ามีห้องอังกฤษ (ของคุณ pete)
มันน่ามี php มั้งนะ ไหนๆ คอ php ก็เยอะ (กว่าครึ่งเป็นขาซุ่ม อิๆ)

คนไหนเป็น php ก็ช่วยมาแชร์ทริกต่างๆ กันบ้างนะครับ

วันนี้เริ่มด้วยอันนี้ละกัน

ถ้า เปิดคุณอยากแสดง email แต่กลัวเรื่องโดนโปรแกรมไล่ดูดเมล์
ก็ต้อง เข้ารหัสอีเมล์ ?

โค๊ด:
<?
$str = "I love you!";

for ($i = 0; $i < strlen( $str ); $i++ ) {
$unicode[] = "&#".ord($str[ $i ]).";";
}
$unicode = implode("",$unicode);

echo $unicode;
?>

ผลที่ได้คือ
โค๊ด:
I love you!

(ลอง view source ดูครับ)

ต่อแต่นี้ไปว่างๆ หรือมีไอเดียจะเอามาแปะครับ ^^

ผม view source แล้วเป็นแบบนี้ &#73;&#32;&#108;&#111;&#118;&#101;&#32;&#121;&#111;&#117;&#33;

ไม่ทราบว่า เทคนิคนี้ Google จะ Search คำว่า i love you จากเว็บเจอรึเปล่าครับ

และอย่างนี้แสดงว่า โปรแกรมดูดอีเมลจะค้นหาจาก Source Code แล้วหาตัว @ เป็นหลักรึเปล่าครับ
แต่ผม ctrl+f ใน Browser มันหาเจอ แสดงว่า Browser ไม่ได้หาจากใน Source Code ใช่รึเปล่าครับ


ขอบคุณครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: doneesi ที่ 13 มกราคม 2008, 18:15:40
วานด้วย


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 13 มกราคม 2008, 21:59:45
ผม view source แล้วเป็นแบบนี้ I love you!

ไม่ทราบว่า เทคนิคนี้ Google จะ Search คำว่า i love you จากเว็บเจอรึเปล่าครับ

และอย่างนี้แสดงว่า โปรแกรมดูดอีเมลจะค้นหาจาก Source Code แล้วหาตัว @ เป็นหลักรึเปล่าครับ
แต่ผม ctrl+f ใน Browser มันหาเจอ แสดงว่า Browser ไม่ได้หาจากใน Source Code ใช่รึเปล่าครับ


ขอบคุณครับ


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

-------------------------------------

ของคุณ doneesi นี้ ดูท่าจะเล่นอะไรแปลกๆ นะ ^^
อย่างไงอย่าทำให้เจ้าของเว็บเดิมเดือนร้อนนะครับ

เข้าเรื่องวิธีก็ง่ายๆ เพียงแต่เรามาเปลี่ยนการใช้ file_get_contents แทน (ผมถนัดตัวนี้มากกว่า)

โค๊ด:
$data = file_get_contents("http://www.uweb.com/a.html");
$data = str_replace("http://www.uweb.com", "http://www.myweb.com", $data);
echo $data; //แสดงผล

ก็ลองๆ ดูนะครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: bankkungz ที่ 14 มกราคม 2008, 14:20:47
file_get_contents

เป็นฟังชั่นอะไรครับ

ถ้าให้เดา

เป็นฟังชั่นอ่านข้อมูลในเพจนั้นๆหรือป่าว

หรือยังไงครับ

ถ้าใช่ผมจะเอาไปประยุคใช้ต่อ

เหอๆ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: doneesi ที่ 14 มกราคม 2008, 15:35:30
ถูกใหมครับผมทำมันไม่ได้ผลครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 14 มกราคม 2008, 19:34:11
อันนี้ผมแค่เขียนคร่าวๆ นะครับ
คือแค่การแทนที่เท่านั้น
จริงๆ ต้องไปดู source ของ html ของเว็บนั้น
มันว่าลักษณะเป็นอย่างไรด้วยครับ

หรือไม่งั้นอีกมุขหนึ่งที่ผมเคยทำเล่นๆ (แต่ไม่แน่ใจในผลทาง seo นะ)

ให้ใช้ include()
แล้วก่อน include ให้ใส่ html ลงไปประมาณว่า
โค๊ด:
<base href="http://www.myweb.com" />

ลองๆ ดูนะครับ ความจริงเรื่องแนวนี้ไม่มีใครเขามาบอกกันหรอกครับ  :D


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: doneesi ที่ 14 มกราคม 2008, 19:57:14


ได้แนวทางเท่านี้ก็ขอบคุณมากๆๆๆครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: navy4100 ที่ 17 มกราคม 2008, 16:28:18
 :-X :-Xl :'( :-Xส่งสัยเวเลทยังไม่ถึงขั้น อ่านไปอ่านมา งอสองตัวเลย :-X :P :'(
.......


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Jenosize ที่ 17 มกราคม 2008, 18:13:45
พอดีเพิ่งหัดทำแบ่งหน้าคับ ออกอาการ งง เลยต้องตั้งมาถาม ไปดู code ของคนที่สอนก่อนนะครับ

อ้างถึง
<?
$sql = "select * from table_name";
$rs = mysql_query($sql);
$totalrow = mysql_num_rows($rs); // ได้ตัวแปรเก็บจำนวนกระทู้ทั้งหมดแล้ว
?>


ต่อไปจะเป็นการแบ่งหน้า ในที่นี้คุณจำเป็นต้องทำค่า GET ใน url ของลิงค์คุณด้วย ยกเว้นหน้าแรก โดยให้ตัวแปรชื่อ $page ซึ่งจะเป็นค่าที่บอกว่าแสดงหน้าที่เท่าไร ใน url คุณจะต้องต่อท้ายเป็นดังนี้
http://www.domain.com/webboard/view.php?page=2
เป็นต้น ค่า GET ของ page=2 หมายความว่า ให้แสดงหน้าที่ 2


อ้างถึง
<?
$pagesize = 20;  // แสดงจำนวนกระทู้ในแต่ละหน้า ในที่นี้จะแสดง 20 กระทู้
$totalpage = (int)($totalrow/$pagesize);  // หาจำนวนหน้าทั้งหมด
// ถ้าจำนวนหน้าเป็นเศษให้ปัดขึ้นไป
if(($totalrow%$pagesize)!=0){
$totalpage+ = 1;
}
// หา record แรกที่จะแสดงของแต่ละหน้า
if(isset($page)){
$pageno = $page;
$start = $pagesize*($pageno-1); << ที่ผมงงคือตรงนี้คับมันคือการห่าค่าเริ่มต้นของ record ตรงไหนคับ  
}else{ 
$pageno = 1;
$start = 0;
}
?>


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: pugkung ที่ 17 มกราคม 2008, 18:32:17
อ้างถึง
//function list_page is Show link all page...
    function list_page($sql,$page_size,$src,$page='',$query_str)
   {
     $qr = mysql_query($sql);
     $rows = mysql_num_rows($qr);
     if($rows%$page_size == 0)
     {
       $total_page = $rows/$page_size;
     }
     else
     {
       $total_page = ($rows/$page_size)+1;
     }
     //print (int)$total_page." + $rows + $page_size";
     //exit;
     print "<br>";
     if((int)$total_page > 1){
       for($i=0;$i<(int)$total_page;$i++)
       {
         if($i == 0){
          if(empty($page) || $page == 1) print "<b>Page : </b> <a href=?page=1&Src=$src$query_str>&lt;&lt;</a>";
         else print "<b>Page : </b><a href=?page=".($page-1)."&Src=$src$query_str>&lt;&lt;</a>";
         print " [ ";
        }
          if($page == $i+1){
            print "<b><font color='red'>".($i+1)." </font></b>";
          }
          else{
            print "<a href=?page=".($i+1)."&Src=$src$query_str>".($i+1)."</a> ";           
          }
         if($i >= 0 && $i < (int)$total_page-1) print "| ";
        if($i==(int)$total_page-1){
         if($page == (int)$total_page) $page = (int)$total_page-1;
         print "] ";
         print "<a href=?page=".($page+1)."&Src=$src$query_str>&gt;&gt;</a>";
        }
       }
     }
   }//end function list page

เอางี้แล้วกัน ผมเอา function ที่ผมใช้อยู่มาแจกล่ะกันครับ ไม่ได้ หรูเริสอะไรแต่ก็พอใช้ได้ครับ

วิธีใช้ก็ นำเอา function ไปไว้ในที่ที่ต้องการให้แสดงเป็นหน้าออกมา

อ้างถึง
echo list_page($sql_list,$pageSize,$Src,$page,$Query_str);

Paramiter ที่ต้องการมีดังนี้
อ้างถึง
  $sql_list = คำสัง sql
  $pageSize = จำนวน แถว ที่ต้องการให้แสดงในแต่ละหน้า
  $Src = ข้อความของ Search ถ้าไม่มีไม่ต้องใส่ก็ได้ ให้ใส่เป็นค่าว่าง
  $page = หน้าที่แสดงในขณะนั้น ในกรณีเป็นหน้าแรก ให้ใส่เป็น 0 หรือ 1
  $Query_str = Query String ที่ต้องการส่ง *ต้องเริ่มต้นด้วยเครื่องหมาย & เท่านั้น

โค้ดอาจจะดูมั่วไปซักหน่อยนะครับ เพราะเขียนเอง ก็ไม่ได้เก่งอะไรมากมาย


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Jenosize ที่ 17 มกราคม 2008, 19:41:43
ขอบคุณมากครับคุณ pugkung

แต่ผมสงสัย code ที่ผมลงไปหน่ะครับ พอช่วยอธิบายหน่อยได้ไหมคับ แบบว่า งง


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: pugkung ที่ 17 มกราคม 2008, 20:16:32
มันคือการ เอาไปหา record ในฐานข้อมูลอ่ะครับ แบบว่าถ้าเราไม่ ลบ ออก 1 มันจะไปค้นหาในส่วนที่เกินของข้อมูลไป 1 record

งงป่าวเนี่ย


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 17 มกราคม 2008, 21:17:08
โค๊ด:
$totalpage = (int)($totalrow/$pagesize);  // หาจำนวนหน้าทั้งหมด
// ถ้าจำนวนหน้าเป็นเศษให้ปัดขึ้นไป
if(($totalrow%$pagesize)!=0){
$totalpage+ = 1;
}

โค้ดท่อนนี้ ความจริงเขียนให้กระชับได้ครับ เป็น

โค๊ด:
$totalpage = ceil($totalrow/$pagesize); //หารแบบปัดเศษขึ้น


ส่วนตรงนี้
โค๊ด:
$start = $pagesize*($pageno-1); << ที่ผมงงคือตรงนี้คับมันคือการห่าค่าเริ่มต้นของ record ตรงไหนคับ


ที่ว่า ลบ 1 คือไปลบกับเลขหน้าครับ
ทำไปทำไม ก็เพราะว่า

เวลาเราค้นใน record มันจะต้องเริ่มจาก 0
แต่เลขหน้ามันเริ่มจาก 1
เวลานำมาคำนวนจุดเริ่มค้นจะต่างกันครับ

ตามสูตรนี้
จุดเริ่ม = ขนาดหน้า * (เลขหน้า - 1 )
0  =  20 * ( 1 - 1 )

แต่ถ้า ไม่มี -1 ล่ะ
20 = 20 * 1


พอเข้าใจปะครับ




หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: Jenosize ที่ 17 มกราคม 2008, 21:22:26
เข้าใจแล้วครับ ขอบคุณมากๆเด้อ  ;D


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 24 มกราคม 2008, 20:07:07
พอไม่ได้มาอัพ เหมือนขาดแหล่งจดไอเดียเลยอะ

วันนี้ก็มาจดเพิ่ม  (ผมไม่ได้ทำเพื่อใครเลย เพื่อตัวเองทั้งนั้น  ;D)

พอดีมีเคสว่า เดิมค่าพาทเป็นแบบนี้

โค๊ด:
$path = "../../";

ซึ่งผมเอาไว้เขียนไฟล์ลงตำแหน่งนั้น ในความหมายบรรทัดนี้คือย้อนไป 2 โฟลเดอร์

ซึ่งบน localhost มันทำงานได้ปกติ แต่พอใช้กับโฮสจริง... เออ.. เอ๋อเลย..
เอ๋อเหรอ Error นั้นเอง  :o

อ้างถึง
[24-Jan-2008 00:00:44] PHP Warning:  fopen(../../newfile.php in /home/myhost/public_html/dir/dat/write.php on line 26
[24-Jan-2008 00:00:44] PHP Warning:  fwrite(): supplied argument is not a valid stream resource in /home/myhost/public_html/dir/dat/write.php on line 27

ปัญหาก็เพราะ ผมไม่ได้อ้างพาทเขียนไฟล์แบบเต็มๆ

นับ 5 วิ ผมนึกได้ ต้องเขียน php ไว้ public_html มาอ่านพาท แล้วเอาไปกรอกในคอนฟิก...

วิธีนี้ลำบากแฮะ ด้วยความขี้เกียจทำบ่อย เลยนึกต่อ จนได้คำตอบว่า

โค๊ด:
$path = preg_replace("#([^/]+/){2}(".basename(__FILE__).")$#", "", str_replace("\\", "/", __FILE__));

คือขั้นแรกก็เอาค่า __FILE__ มาใช้
แก้ \ เป็น / ก่อน ด้วย str_replace (สำหรับกรณีโฮสวินโดวน์)
ต่อมาก็ preg_replace เลย โดยเขียนตัดเอาชื่อโฟลเดอร์ต่อท้าย 2 โฟลเดอร์ืืืทิ้งซะ!

ปัญญานี้ก็แก้ได้เรียบร้อย ;D

ต่ออีกนิด

ทำไมผมใช้ __FILE__ ในเมื่อ
หลายคนคงนึกถึงตัว $_SERVER['PHP_SELF'] แต่ความต่างมันก็คือ
$_SERVER['PHP_SELF'] จะอ้างจากชื่อไฟลหลักที่ทำงาน อย่างถ้ามันไปอยู่ใน index2.php
แต่เราเรียก index.php แล้วไป include index2.php แต่ยังไง $_SERVER['PHP_SELF'] มันจะอ้างที่ index.php อยู่ครับ

แต่กลับกัน __FILE__ จะอ้างที่ index2.php แทน คือมันจะอ้างไฟล์ที่คำสั่งมันอยู่นั้นเอง

 ::) ::)

[อัพเดต!]


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: thenetxx ที่ 24 มกราคม 2008, 20:13:37
-*-

เป็นผม  ใส่ config ไว้

โค๊ด:
$rootpath = 'usr/home/public_html';

จบ เวลาเรียกใช้ไม่งง แถมง่ายกว่า เอาง่ายเข้าว่า เอิ๊กกก


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 24 มกราคม 2008, 20:22:23
-*-

เป็นผม  ใส่ config ไว้

โค๊ด:
$rootpath = 'usr/home/public_html';

จบ เวลาเรียกใช้ไม่งง แถมง่ายกว่า เอาง่ายเข้าว่า เอิ๊กกก


แต่ผมขี้เกียจไง เพราะนึกถึงตอนปั๊มทีหลายสิบเว็บ 555+

(ความจริงคือลูกค้าจ้างครับ ผมทำให้สบายลูกค้ามากที่สุด ^^)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: lowprofile ที่ 25 มกราคม 2008, 01:11:48
ผมแบ่งไว้เป็นสามชนิดครับ แล้วแต่ว่าจะเลือกใช้แบบไหน

define('ROOT_DIR', '../');
define('ROOT_URL', 'http://'.$_SERVER["HTTP_HOST"].'/');
define('DOC_ROOT', $_SERVER["DOCUMENT_ROOT"].'/');


เวลาใช้ในการ link (a href) ก็ใช้ ROOT_URL (เห็นบางคนบอกว่าดีกับการ seo แต่ผมเน้นใช้ .htaccess เลยต้องใช้ตัวนี้)
เวลาใช้ในการ include, require ก็ใช้ DOC_ROOT
ส่วน ROOT_DIR นี่ไม่ค่อยได้ใช้เท่าไหร่ครับ แต่ก็เผื่อไว้สำหรับอนาคต


แต่พวก PATH_SEPARATOR ไม่ค่อยได้ใช้เท่าไหร่
http://th2.php.net/set_include_path


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 25 มกราคม 2008, 01:23:14
ปกติถ้าไม่พลิกแพลง ผมเองก็ใช้แบบนี้

//ชื่อไฟล์ที่ทำงาน
$PHPSELF = basename($_SERVER['PHP_SELF']);
//ใช้ระบุพาทภายในแบบเต็ม
$localpath = dirname(__FILE__)."/";
//ใช้ระบุพาทเว็บภายนอกแบบเต็ม
$hostpath = preg_replace("#(/".$PHPSELF.")$#", "", "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
//ใช้ระบุซัพโฟลเดอร์
$subpath = preg_replace("#(".$PHPSELF.")$#", "", $_SERVER['PHP_SELF']);


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: thenetxx ที่ 25 มกราคม 2008, 23:26:57
อืม ๆๆ set แบบคุณ Ethai (อิตัย) อิอิ

แล้วก็ใช้ define เอา แบบคุณ low ก็ง่ายดีแฮะ

น่าคิด


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 02 กุมภาพันธ์ 2008, 16:13:49
อืม ๆๆ set แบบคุณ Ethai (อิตัย) อิอิ

แล้วก็ใช้ define เอา แบบคุณ low ก็ง่ายดีแฮะ

น่าคิด


งั้นก็แบบนี้ (ฮา)

โค๊ด:
//ชื่อไฟล์ที่ทำงาน
define('PHPSELF', basename($_SERVER['PHP_SELF']));
//ใช้ระบุพาทภายในแบบเต็ม
define('LOCALPATH', dirname(__FILE__)."/");
//ใช้ระบุพาทเว็บภายนอกแบบเต็ม
define('HOSTPATH', preg_replace("#(/".PHPSELF.")$#", "", "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']));
//ใช้ระบุซัพโฟลเดอร์
define('SUBPATH', preg_replace("#(".PHPSELF.")$#", "", $_SERVER['PHP_SELF']));

ตัว LOCALPATH ของผมคล้ายกับ DOC_ROOT
เพียงแต่ ใช้ในกรณีทำงานได้ทุกโฟลเดอร์ และมันหาตำแหน่งปััจจุบันได้เอง (เครดิิตยกให้ Tee++; ครับ)
ส่วน HOSTPATH  ก็คล้ายกับ ROOT_URL เพียงแต่ทำงานกับซัพโฟลเดอรได้ด้วย
ส่วนสุดท้ายตัว SUBPATH ใช้ในกรณีตรวจสอบว่าเป็นซัพโฟลเดอร์ได้หรือเปล่า ดูจากนี้ได้เลย

สรุปว่า 4 ตัวนี้ ถ้าคนเขียนใช้ดีๆ ผมรับรองเลยว่า
สามารถเขียนแบบไม่ต้องมานั่งแก้ config ระบุชื่อโดเมนลงไปเหมือนสมัยเก่าๆ ครับ
(นี้คือสาเหตุที่เขียนเป็นแบบนี้  ::))

EDIT: แก้เพิ่มตามทีุ่คุณ lowprofile บอก


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EixQzUnG ที่ 04 กุมภาพันธ์ 2008, 00:42:33
พอดีผม จะเก็บ ค่า search อะคับ ไม่ให้มันเก็บ คำที่เกียวกับเว็ป เขียน if กันยังไง ดีคับ


ไม่มี ความรู้เรื่อง คำสัง จักการ กับ สตริงเลยนะคับ


แบบว่าป้องกัน คำว่า http://,.com,.net.org อะไร พวกนี้


เขียนไม่พอเป็นอะคับ แต่ เก็บค่า a-z ก-ฮ นะคับ




หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: hurahura ที่ 04 กุมภาพันธ์ 2008, 20:31:25
คำสั่ง define มันดียังไงเหรอครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 06 กุมภาพันธ์ 2008, 12:06:58
คำสั่ง define มันดียังไงเหรอครับ

ตอบท่าน hurahura (ทำไมผมชอบอ่านเป็น haruhura หว่า -*-)

ดีตรงไหน มันมีตรงที่
ค่าที่โดน define แล้วจะแก้ไขไม่ได้อีกในการทำงานนั้นๆ (ถ้าอยากแก้ก็มีทาง แต่ต้องลง extension เสริมลงไป) และ สามารถเรียกใช้แบบไม่มี $ ได้ พูดง่ายๆ คือค่าที่โดนทำแล้วมันจะเป็น constant (ค่าคงที่)

เลยจะเรียกใช้งานได้สะดวก เหมาะมากกับค่าที่เราไม่คิดเปลี่ยนแปลงอีก
และแถมเวลาเรียกใช้จะเห็นความแตกต่างในระดับหนึ่งด้วย


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 06 กุมภาพันธ์ 2008, 12:09:28
ตอบท่าน zunkz

ลองอ่าน http://www.thaiseoboard.com/index.php/topic,19753.0.html ดูครับ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: ฉันไม่มีตัวตน ที่ 06 กุมภาพันธ์ 2008, 13:09:48
ผมขอถามมั่งนะครับ.ขอขอบคุณล่วงหน้าเลย..อิอิ.
ผมจะทำเว็บบอร์ดไทย แล้วให้มีบางห้องเป็นภาษาeng.
ถ้าผมต้องการ include แบนเนอร์เฉพาะห้องภาษาeng ผมจะใช้สคริปแบบไหนอ่ะครับ(ผมไม่ใช่โปรแกรมเมอร์นะ ผมอาศัยมั่วๆเอาอ่ะ).

ตย.เอาบอร์ดTSB นี่ล่ะ เช่น ผมต้องการติด adsense ห้อง Basic Information , แล้วห้องอื่นๆ ติด nipa
ห้องข่าวสารจากทีมงาน
โค๊ด:
http://www.thaiseoboard.com/index.php?board,24.0
ห้องBasic Information
โค๊ด:
http://www.thaiseoboard.com/index.php/board,9.0.html
ห้องTWG
โค๊ด:
http://www.thaiseoboard.com/index.php/board,1.0.html


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 06 กุมภาพันธ์ 2008, 14:49:14
ตอบคุณ ninep

อ่า ถามแบบนี้ จ้างผมทำเลยดีกว่าไหมเนี่ย 555+ มะกี้ผมนั่งไล่โค้ดอยู่ตั้งนาน  :P

ไหนๆ ก็ไล่จนเสร็จ ให้แก้ตามนี้ครับ  :)

ขั้นแรกเปิดไฟล์ Display.template.php ของเืทมเพลต default ครับ  ( Themes/default/ )

ต้องแก้ทั้งหมด 2 อย่างครับ

อย่างแรกค้นหา (แถวบรรทัดที่ 6)
โค๊ด:
global $context, $settings, $options, $txt, $scripturl, $modSettings;

เจอแล้วแก้เป็น
โค๊ด:
global $context, $settings, $options, $txt, $scripturl, $modSettings, $board;

แล้ว หาบรรทัด (ราวๆ บรรทัดที่ 17)
โค๊ด:
 		<td valign="bottom">', theme_linktree(), '</td>';

หาเจอแล้ว เพิ่มคำสั่งต่อท้าย (คือไม่ได้ยุ่งกับของเดิมนะ)

โค๊ด:
$blist = array('1', '9');
$key = array_search($board, $blist);
if($key !== FALSE) {
 echo 'Adsense Code';
}

ตรง Adsense Code ก็แก้เป็นโค้ด adsense ของคุณ
 
ตรง $blist = array('1', '9');
ก็คือใส่เลขหมวดของบอร์ด อย่าง 1 กับ 9 คือ หมวด TWG และ Basic Information


ประมาณนี้ครับ

แต่!!!! ผมไม่รับประกันว่าจะใช้ได้ เพราะไล่แต่โค้ด ไม่ได้ลองแก้และรันจริงๆ
ได้ผลอย่างไรก็มาบอกได้ครับ

(กลัวตัวแปร $board จะส่งค่าไม่ถึง หรือมีการจัดการตัวแปรให้เป็นไปซะก่อน - -*)

 :)


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: thenetxx ที่ 06 กุมภาพันธ์ 2008, 14:51:19
พอดีผม จะเก็บ ค่า search อะคับ ไม่ให้มันเก็บ คำที่เกียวกับเว็ป เขียน if กันยังไง ดีคับ


ไม่มี ความรู้เรื่อง คำสัง จักการ กับ สตริงเลยนะคับ


แบบว่าป้องกัน คำว่า http://,.com,.net.org อะไร พวกนี้


เขียนไม่พอเป็นอะคับ แต่ เก็บค่า a-z ก-ฮ นะคับ





เอาดิบ ๆ เลยนะครับ

โค๊ด:
	if(ereg('http://',$_GET['keyword'])){
echo "please don't use url for search";
exit();
}


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 06 กุมภาพันธ์ 2008, 14:56:33
ตายล่ะ ของคุณ zunkz ผมส่งให้ผิดกระทู้ ต้องอันนี้  :-X

http://www.thaiseoboard.com/index.php/topic,18976.0.html

อ่านแล้วน่าทำได้เลย  :P


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: ฉันไม่มีตัวตน ที่ 06 กุมภาพันธ์ 2008, 15:12:01
ขอบคุณมากเลยครับไปลองก่อน แล้วจามารายงานผล เพื่อนๆจะได้เอาไปใช้ด้วยกัน อิอิ


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: lowprofile ที่ 09 กุมภาพันธ์ 2008, 01:03:41
อ้างถึง
ตรง "$PHPSELF" ต้องเปลี่ยนเป็น PHPSELF เฉยๆ นะครับ เพราะว่า define ไว้แล้ว

กำ ผมขอโทษครับ ผมนึกว่าโพสตัวเอง เผลอกดผิดครับ  :-X

คือจะกดอ้างอิง ดันไปกดแก้ไข แล้วลืมสังเกต  By EThaiZone  :'(


หัวข้อ: Re: [PHP Room] แชร์ PHP กันวันละนิด
เริ่มหัวข้อโดย: EThaiZone ที่ 12 กุมภาพันธ์ 2008, 16:40:14
ผมเผลอไปแก้โพสคุณ lowprofile เพราะดันเข้าใจว่าเป็นกดอ้างอิง เลยเผลอทำให้โพสหาย
ขอโทษด้วยนะครับ  :-X

--------------------------------------------------------------

ผมขอล็อกกระทู้นี้เลยนะครับ มันคงไม่มีความจำเป็นอีกแล้วครับ

 :)