rokaisakkon โพสต์ 2014-4-1 14:36:59

[ กระทู้แฉ ] วิเคาะห์ DIY ของเว็บ 7nime ว่าทำกันอย่างไร

แก้ไขครั้งสุดท้ายโดย rokaisakkon เมื่อ 2014-4-1 14:40

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

เริ่มแรกเลย ไปทำความรู้จักกันก่อน ว่ามีอะไร บ้างที่ต้องรู้

[*]เว็บ ตัวอย่างครับ ดูได้ด้านล่าง
[*]ระบบ DIY ของดิสคัส ที่เจ๋ง แจ๋ม โคตร ๆเอาแบบว่า มันสุดยอดอะ
[*]ไฟล์โค้ด ของดิสคัส ที่เรียงมาเป็นระเบียบ สวยงาม ช๊อบ ๆ ชอบ
[*]เว็บ อัพรูปภาพ imgur
[*]Discuz x2.5อ้างอิงในการเขียนกระทู้นี้


เริ่มแรกเลย บางคน สงสัย DIY ที่จะเอามา แฉมันดีอย่างไรทำไม ต้องเอามาแฉ คนอื่นเขาก็ ทำเป็น   มาดูรูป กันครับ



ลิงค์เว็บไซต์ครับ http://7nime.com

เริ่มแรกเลยเราต้องมาดูกันก่อนว่าทำไม เราต้องมา วิเคาะห์ DIY ของเว็บนี้ เพราะมันก็ ปรกติ เฉย ๆ บางคนบอก ว่า ตัวเองก็ทำได้มาดูข้อแตกต่างครับ


[*]มีรูปใน DIY แต่ ในกระทู้ กลับไม่ใช่รูปที่ อัพขึ้นโฮส เป็น url รูปจากที่ต่าง ๆ
[*]รูปในDIY มาจาก imgurเอ๊ะ ทำไมมันไม่มาจากในDiscuz หรือ โฮสเราเองละ
[*]ไอค่อน NEW สีแดง ที่มีเฉพาะ บางรูป ใน DIY



มาวิเคาะห์ แต่ละข้อกันดีกว่าครับ

ทำไม DIYดึงรูปจากกระทู้ ที่ไม่ได้อัพรูปไว้บนโฮส ขึ้นมาโชว์ได้ละ

ผมเดาว่าเจ้าของเว็บได้ทำการ แก้ไข โค้ดใน source/class/block/forum/block_thread.php
ในฟังชั่น getdata โดยในนั้น มี โค้ดการ ส่ง diy ออกมาแสดงครับ   

เขาน่าจะ เขียนโค้ด โดย ใช้ fid ที่เขากำหนดไว้(บางบอร์ดไม่จำเป็นต้องใช้ เขียนเทียบ fid กันเหนียว) เทียบ ไว้ fid ในฟังชั่นนั้น
หากตรงกัน เขาก็ while ตามที่ฟังชั่น getdataทำงานครับ แต่ปรับแต่งตรง LIMIT ครับ ตรง $itemให้ *2 เข้าไป แล้วเอาไปใช้ครับ(เผื่อกรณีที่หารูป diy ไม่เจอ)

ใน while   เขาใช้ tidและ ขนาดของรูป ไป sql เพื่อดึง หา url รูป diy ใน ฐานข้อมูลจัดเก็บข้อมูลรูปภาพ diy ที่เขา สร้างขึ้นมาครับหากมีก็ดึงมาใช้เลย
เอ๊ะบางคนสงสัย ฐานข้อมูลจัดเก็บข้อมูลรูปภาพ diy มาได้ไง   มาจากตรงนี้ครับเมื่อกี้ผมบอกไปว่า ถ้าเขาเจอก็ดึงมาใช้ถ้าในกรณีที่ไม่เจอละ ให้บันทึก ข้อมูลลง ฐานข้อมูลจัดเก็บข้อมูลรูปภาพ diy เลยครับ อย่าลืมบันทึกขนาดของรูปลงไปด้วยนะครับ แล้ว ก็ continue whileเลยครับ

*ใน while   อย่าลืมเขียนตัวนับรอบนะครับ ให้เท่ากับ $item หากเท่าแล้ว สั่ง break เลย

ต่อไปคือ คำสั่งสำหรับ สั่งจัดการ url ที่เราบันทึกลง ฐานข้อมูลจัดเก็บข้อมูลรูปภาพ diy ไว้นะครับ
สร้างไฟล์มาครับ แล้วใช้ whileฐานข้อมูลจัดเก็บข้อมูลรูปภาพ diy ที่เก็บ ข้อมูล ที่เราบันทึก urldiyครับ แล้ว   วนแล้วดึง url มาใช้ curl ดึง รูปจาก url แล้วสั่งลดขนาด โดยใช้ ขนาดที่เรา บันทึกเก็บไว้ มาสั่ง cropครับ แล้ว สั่ง อัพโหลดขึ้นimgur ครับหรือถ้าท่านไม่อยาก api ไป imgur ให้บันทึกลง data ของ ดิสคัสเลยครับ


อย่าลืมให้ โฮส cronjob ไฟล์นี้ทุก ๆ 10 นาทีนะครับ


1. ทำไมถึงต้องใช้ รูป ใน imgur
ตอบ ไม่เปลืองเนื้อที่ในโฮสตอนย้ายมันลำบาคนะ   ^^

2. ทำไมต้องสร้างไฟล์ cronjob ขึ้นมา ทำไมไม่ ใส่โค้ดลงใน getdata ของdiy เลย
ตอบ เว็บจะอืดบางช่วงครับ


3. ทำไมไม่แจกโค้ด แล้วแบบนี้ใครจะทำได้
ตอบ ต้องลองหัดกันเองครับผมก็เดาเอา


แถม regex ให้ครับ

$message = $data['message'];
if(!preg_match("/\<img[^>]*src=[\"\']([^\s'\"<>]+)[\"\'][^>]*\>/is", $message, $image)) {
if(!preg_match("/\([^\s'\"<>]+)\[\/img\]/is", $message, $image)) {
   preg_match("/\\d{1,4}\]([^\s'\"<>]+)\[\/img\]/is", $message, $image);
}
}
$image = $image;


DIY ตรง ไอค่อน New ผม กำหนด ทีมเพจเองแล้วใช้ ครอบครับ ตัวเชขคือ จำนวนนับ ที่ต้องการให้ แสดงเป็นแบบนั้น ๆ

หากมีคำถามตรงไหนไม่เข้าใจถามได้ครับผม ถ้าชอบก็ กด+ หรือ เพียงแค่คำขอบคุณก็พอครับ {:32_1220:}


cyber2friends โพสต์ 2014-4-1 15:01:25

นั่งอ่านแบบงงๆ แล้วก็ปรับความเข้าใจไปsm896dz

ขอบคุณครับsm945dz

jaideejung007 โพสต์ 2014-4-1 15:03:21

เข้ามาจับจองพื้นที่ไว้แปปครับ

เดี๋ยวไปอ่านที่บ้าน

admins โพสต์ 2014-4-2 13:20:01

ไอคอน NEW คุ้นๆ 55+

korakot โพสต์ 2014-4-3 22:23:44

ขอบคุณครับสำหรับความรู้ เดียวเอาไปลองบ้าง

StaFF_PiRcH โพสต์ 2014-6-3 03:17:02

แวะมาสูบความรู้ครับเลิกเล่น DZ ไปพักใหญ่ ๆ เลยเพิ่งกลับมาครับ sm920dzsm920dzsm920dzsm920dz

sakko51150 โพสต์ 2014-9-26 00:28:03

อยากทราบตรงดึงรูปจากเว็บอื่นมาขึ้น DIY ให้ได้เหมือนกันนะครับ
แต่อ่านแล้วยังงงๆอยู่เลย T^T
หน้า: [1]
ดูในรูปแบบกติ: [ กระทู้แฉ ] วิเคาะห์ DIY ของเว็บ 7nime ว่าทำกันอย่างไร