- เครดิต
- 287
- เพื่อน
- ทักทาย
- บล็อก
- อัลบั้ม
- โพสต์
- กระทู้
- แชร์
- สำคัญ
- สิทธิ์อ่าน
- 20
- จำนวนผู้ติดตาม
- จำนวนผู้กำลังติดตาม
- เพศ
- ไม่บอก
|
แก้ไขครั้งสุดท้ายโดย rokaisakkon เมื่อ 2014-4-1 14:40
กระทู้นี้ จะไม่เปิด เผย รหัสโค้ดใด ๆ แต่จะชี้ว่าเขาทำอย่างไร
บอกไว้ก่อน ว่าผมไม่ได้ มาโปรโมทเว็บ เพราะว่าไม่รู้จะโปรโมทไม่ทำไม เหมือนกัน ดังนั้น เข้าใจเจตนาของผมด้วยครับ ขอบคุณครับ
เริ่มแรกเลย ไปทำความรู้จักกันก่อน ว่ามีอะไร บ้างที่ต้องรู้
- เว็บ ตัวอย่างครับ ดูได้ด้านล่าง
- ระบบ DIY ของดิสคัส ที่เจ๋ง แจ๋ม โคตร ๆ เอาแบบว่า มันสุดยอดอะ
- ไฟล์โค้ด ของดิสคัส ที่เรียงมาเป็นระเบียบ สวยงาม ช๊อบ ๆ ชอบ
- เว็บ อัพรูปภาพ imgur
- Discuz x2.5 อ้างอิงในการเขียนกระทู้นี้
เริ่มแรกเลย บางคน สงสัย DIY ที่จะเอามา แฉมันดีอย่างไร ทำไม ต้องเอามาแฉ คนอื่นเขาก็ ทำเป็น มาดูรูป กันครับ
ลิงค์เว็บไซต์ครับ
เริ่มแรกเลยเราต้องมาดูกันก่อนว่าทำไม เราต้องมา วิเคาะห์ 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 ที่เก็บ ข้อมูล ที่เราบันทึก url diy ครับ แล้ว วนแล้วดึง 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("/\[img\]([^\s'"<>]+)\[\/img\]/is", $message, $image)) {
- preg_match("/\[img=\d{1,4}[x|\,]\d{1,4}\]([^\s'"<>]+)\[\/img\]/is", $message, $image);
- }
- }
- $image = $image[1];
คัดลอกไปที่คลิปบอร์ด
DIY ตรง ไอค่อน New ผม กำหนด ทีมเพจเองแล้วใช้ [index=1] [/index] ครอบครับ ตัวเชขคือ จำนวนนับ ที่ต้องการให้ แสดงเป็นแบบนั้น ๆ
หากมีคำถามตรงไหนไม่เข้าใจ ถามได้ครับผม ถ้าชอบก็ กด + หรือ เพียงแค่คำขอบคุณก็พอครับ
|
ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง
คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? สมัครสมาชิก
x
คะแนน
-
ดูบันทึกคะแนน
|
|
|
|
|
|