[PHP Room] แชร์ PHP กันวันละนิด

เริ่มโดย EThaiZone, 05 มีนาคม 2007, 19:27:38

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

EThaiZone

อ้างถึงจาก: 7คุณ EThaiZone ไม่ทำ blog ต่อหล่ะ แต่อย่าใช้ msn เลยนะ ขอร้อง  :lol:

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

sealinda

:D  :D  กระทู้น่าสนใจมั่กๆ เลยค่ะ  :D เขียน php มะเป็นอ่ะ มาขอเรียนด้วยคนนะ มาขอจองที่นั่งแถวหน้าเหมือนกัน  :lol:  :lol:  :lol:  :lol:
[direct=http://www.thaiseoboard.com/index.php/topic,95911.msg1197898.html#msg1197898]รับบริจาคของขวัญ สำหรับงานวันเด็ก (ส.ที่ 9 ม.ค. 53 ที่บ้านราชวิถี)[/direct] |[direct=http://www.sealinda.com/]ขายส่งเีครื่องสำอางแบรนด์เนม[/direct] | [direct=http://www.girliza.com/]เทคนิคการแต่งหน้า&บำรุงผิว[/direct]|[direct=http://bookmark.girliza.com]บุ๊คมาร์คแซ่บๆ[/direct]

pongino

คืออยากแชร์เหมือนกัน แต่ไม่รู้ว่าจะแชร์อะไร
เวลาเขียนโปรแกรม ผมใช้หลัก KISS
Keep it Simple and Stupid
คือเขียนแบบ โง่ๆ แต่ได้ผลชัวร์ แหะๆๆ

แบบว่า trick เกี่ยวกับ syntax ไม่มีเลยจ้า อายจัง  :oops:
White Road ขายบริการทางเพจ ท้าทายอำนาจรัฐ! แผนปั่นเงินแบบ White Hat เต็มอัตรา สู่เป้าหมาย 50,000 บาทต่อเดือน!!! ดูรายละเอียด Link ข้างล่าง

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

เวปสำหรับสั่งซื้อและ Support ลูกค้า
http://www.whitehatsite.com

เวปตัวอย่าง
http://www.cityguideseek.com

สนใจก็ PM มาได้เลยจ้า

jzyjjx


cmbuy

เข้าท่าดี
มีที่ให้จ่มเพิ่มล่ะ
- -!

jaja

มือใหม่นะครับ

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

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

EThaiZone

อ้างถึงจาก: jajaมือใหม่นะครับ

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

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

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

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

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

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

7

ภาษาในการจัดการฐานข้อมูลเป็นภาษากลางของ IBM เรียกว่า SQL ครับ จะได้หาข้อมูลถูก

sealinda

:shock:  :shock: งึมๆ จะจำหมดมั้ยเนี่ย

ว่าแต่ สนใจจะสอนตั้งกะพื้นฐานมั้ยคะ  :oops:  :oops:  :oops: แบบว่า ไม่รู้อารัยเกี่ยวกับ php เลยง่ะ งุงิ  :oops:  :oops:
[direct=http://www.thaiseoboard.com/index.php/topic,95911.msg1197898.html#msg1197898]รับบริจาคของขวัญ สำหรับงานวันเด็ก (ส.ที่ 9 ม.ค. 53 ที่บ้านราชวิถี)[/direct] |[direct=http://www.sealinda.com/]ขายส่งเีครื่องสำอางแบรนด์เนม[/direct] | [direct=http://www.girliza.com/]เทคนิคการแต่งหน้า&บำรุงผิว[/direct]|[direct=http://bookmark.girliza.com]บุ๊คมาร์คแซ่บๆ[/direct]

golf98765

เอามาให้อ่านเยอะนะครับ จะให้ดีทำเว็บเก็บไว้เป็นข้อๆ เลยครับ
ผมว่าดีนะ  :idea:

ขอบคุณคร๊าบ

aomnaruk

วิธีเพิ่มความเร็วให้กับ 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>


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

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

winzaan

รอติดตามเรื่อยๆครับ

EThaiZone

ใช้ลูปอย่างไรให้เหมาะสม ?

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

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

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

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

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

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

toony

โห หน้า 3 แระ จาตามอ่านทันไหมเนี้ย มาทีหลัง ด้วย มองไม่ค่อยเห็นอ่ะ  

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

chonyagusa

อยากได้แบบนี้อ่ะ ทำให้หน่อยได้มะงับ

คือถ้า เราเขียนหรือใครเขียนคำว่า @ ให้เปลี่ยนเป็นรูป

http://www.saiyaithai.org/l2aelba_Studio/at.gif

กันโปรแกรมดูดเมล์ -*-
[direct=https://maxiox.com]maxiox[/direct]
[direct=https://maxmazo.com]maxmazo[/direct]

EThaiZone

ตามคำขอ กันสแปมเมล์

<?
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 ครับ

ผลลัพพ์ได้แบบนี้

EThaiZone

ตกม้าตายกะ 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 แบบตกม้าตายเอาได้ครับ

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

e-business

ขอบคุณครับที่มีกระทู้นี้ มีประโยชน์มากๆครับ ไว้จะคอยติดตามอ่านเรื่อยๆครับ
คูปอง Facebook (มูลค่า $50) เพียงใบละ 259-299 บาท

Tee++;

มาเสริมให้นิดนึงครับกับ 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
[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


EThaiZone

ขอบคุณครับ
เรื่อง ob ผมยังไม่เคลียร์เลย  :D