ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comไทย เสียว บอร์ดTutorial (ห้ามตั้งคำถามห้องนี้)เคยมั้ย แกะสคริปท์แล้วมึนตึ๊บ มาลองนี่ดีกว่า => Windows Grep
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: เคยมั้ย แกะสคริปท์แล้วมึนตึ๊บ มาลองนี่ดีกว่า => Windows Grep  (อ่าน 2417 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
ball6847
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 212
ออฟไลน์ ออฟไลน์

กระทู้: 4,174



ดูรายละเอียด
« เมื่อ: 17 เมษายน 2009, 12:40:15 »

ใครที่หัดเขียนโปรแกรมด้วยวิธีแนวๆเดียวกับผม คือหัดจากการแกะ Sourcecode สคริปท์ทั่วๆำไป (ที่เปิดเผย source นะ เหอๆ)

ปัญหาที่เจอเวลาจะแกะคือ เวลาเจอสคริปท์ใหญ่ๆอย่างพวก CMS จะถึงกับมึนตึ๊บ เพราะสคริปท์พวกนี้จะเขียนโปรแกรมเป็น OOP แยกเป็นส่วนๆ แล้วค่อยเรียกมาใช้เพื่อให้สคริปท์ไม่รก อ่านง่าย แต่ปัญหาของคนของโมคือ หาต้นตอของ function หรือ class ไม่เจอ (มัน include มาจากไฟล์ไหนของมันวะ  Angry )

บางฟังก์ชั่น พี่แกใช้ชื่อแบบ self explained มาก อย่าง wordpress มีฟังก์ชั่น __() , _e() , _p() , _n() , _c()
โอ้ว (อุทานอย่างสถุนว่า "กุจะบ้า!! ไรของมันวะ!!") จะตรัสรู้ได้มั้ยเนี่ยว่าฟังก์ชั่นพวกนี้มันไว้ทำอะไร

ครั้นจะหาต้นตอก็งงเหลือกินว่ามัน include มาจากไฟล์ไหน

วันนี้ผมมีวิธีหาแระ ด้วยโปรแกรมนี้เลย Windows Grep (จริงๆแล้ว grep เป็น commandline utility ของ unix)

ที่นี่เลย => http://www.wingrep.com/

โปรแกรมนี้เอาไว้ Search , Replace ไฟล์ได้ทั้งแบบ match word หรือ regular expression แบบทีเดียวหลายๆไฟล์ เพราะฉนั้นถ้าเอามาหัดแกะสคริปท์ควรมีพื้น regular expression มาบ้างนะคับ

เริ่มแรกตามจุดประสงค์ของเราคือเอามาช่วยแกะสคริปท์ แต่ว่า grep ไม่มี syntax hightlighter ให้นะ เพราะงั้นเราต้องใช้มันร่วมกับ text editor ตัวอื่น ในที่นี้ผมใช้ editplus ผมก็จะตั้งให้มันทำงานร่วมกับ editplus ด้วย

โดยเข้าไปที่ Options => Preferences เลือกที่แท็บ Editor แล้วใส่ Command เข้าไปแบบนี้คับ



ทีนี้พอเวลาเราค้นหาแล้วให้จะได้ให้มันเปิดไฟล์ที่ match ด้วย editplus แล้วให้เลือก cursor ไปที่ บรรทัดที่เจอทันที เราจะเข้าถึงข้อมูลได้ทันทีเลยคับ

ทีนี้มามาลองค้นหาง่ายๆ ผมจะลองกับ wordpress นะครับ
โดยโจทย์ของผมคือ ผมต้องการหาทุก function ที่มีอยู่ใน wordpress ก็จะเริ่มแบบนี้ครับ

เลือกที่เมนู Search => Search... หรือกด ctrl+f หรือคลิ้กที่รูปไฟฉาย วิธีไหนก้ได้แล้วแต่สะดวกคับ

ผมก็ใส่ regex ที่ช่อง search string แล้วเลือก Normal(Regular Expresion)
regex ผมใส่อันนี้

function [a-z_][a-z0-9_]+\s*\(.*\)

แล้วก็ไม่ติ้กช่อง match case นะ

ช่อง File Specification ผมกรองเอาเฉพาะ *.php ใครคิดว่ามีพวก *.inc ก็ใส่ *.* ไปเลยมันจะค้นทุกนามสกุล
ช่อง Folder ผมใส่ที่อยู่ของ wordpress ในเครื่องผมเลย



ได้ตามนี้ก็คลิ้ก OK เลย
รอแปปนึง รายชื่อทุกฟังก์ชั่นใน wordpress ก็จะปรากฏต่อหน้าเราในบัดดล พร้อมทั้งที่อยู่ไฟล์ และบันทัดที่เจอ



ลองคลิ้กที่ข้อความที่หาเจอมันก็จะเปิดไฟล์นั้นด้วย editplus แล้วไปที่บรรทัดนั้นทันที



อ้อ มันเป็นอย่างงี้นี่เอง

หวังว่าคงเป็นประโยชน์นะครับ
บันทึกการเข้า

smapan
Global Moderator
เจ้าพ่อบอร์ดเสียว
*****

พลังน้ำใจ: 643
ออฟไลน์ ออฟไลน์

กระทู้: 8,272



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 17 เมษายน 2009, 12:50:41 »

ปรกติใช้ editplus แล้ว search > find in files... แค่นี้เองครับ  Tongue

ขอบคุณครับสำหรับความรู้ใหม่
« แก้ไขครั้งสุดท้าย: 17 เมษายน 2009, 12:52:18 โดย smapan » บันทึกการเข้า

จูมล่าโฮส สยามโฮสเว็บ modty.com
รวมที่พัก เช่ารายวัน ที่พักเช่ารายเดือนมากที่สุดแจ่มจริง
***Tel 083-757-1515 ติดปัญหา Joomla ตรงไหนรับปรึกษาฟรี โทรมาเถอะครับ ถ้าตอบได้ช่วยแน่นอน ไม่มีกั้ก. ***
kero
ก๊วนเสียว
*

พลังน้ำใจ: 6
ออฟไลน์ ออฟไลน์

กระทู้: 326



ดูรายละเอียด
« ตอบ #2 เมื่อ: 17 เมษายน 2009, 12:59:01 »

ปรกติใช้ editplus แล้ว search > find in files... แค่นี้เองครับ  Tongue

ขอบคุณครับสำหรับความรู้ใหม่

เหมือนผมเลย  Tongue  เห็นพวกที่เขียนโปรแกรมบน unix เขา grep กันง่ายๆมานานแล้ว
บันทึกการเข้า

Amazon Review Blog ไม่เคยได้เงินกะเขาเล้ย เฮ้อ
Blog คนบ้า 555 Blog ผมเองครับเอาไว้นั่งบ่น
ball6847
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 212
ออฟไลน์ ออฟไลน์

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #3 เมื่อ: 17 เมษายน 2009, 13:20:02 »

ปรกติใช้ editplus แล้ว search > find in files... แค่นี้เองครับ  Tongue

ขอบคุณครับสำหรับความรู้ใหม่

เออ จริงด้วยแฮะ  Grin Grin

จะทำให้ยากทำมัยวะเนี่ยเรา ก๊ากกก  Grin Grin
บันทึกการเข้า

ioff
ก๊วนเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 275



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 17 เมษายน 2009, 13:27:47 »

 Smiley  เป็นอีก 1 วิธีมาเสอนกันไง ค่ะ
บันทึกการเข้า

Newbies
สมุนแก๊งเสียว
*

พลังน้ำใจ: 42
ออฟไลน์ ออฟไลน์

กระทู้: 554



ดูรายละเอียด
« ตอบ #5 เมื่อ: 17 เมษายน 2009, 14:20:28 »

เคยมึนๆ เหมือนกัน เวลาแกะ
แต่เดี๋ยวนี้อยากแกะอะไร ก็ใช้ php xref เอา เอาทั้งสคริบมาทำในเครื่องเลย มันจะ gen cross reference file ให้หมด หาอะไรก็เจอ รู้หมดอยู่ตรงไหน ทำอะไร

ตัวอย่าง
http://xref.fergcorp.com/trunk/nav.html?index.html
บันทึกการเข้า



หน้า: [1]   ขึ้นบน
พิมพ์