ทางเลือกอื่นในการดำเนินการ grep ในขณะที่ใช้แผนเว็บโฮสติ้งที่ใช้ร่วมกัน

แอปพลิเคชัน: ฉันต้องการเผยแพร่เว็บแอปพลิเคชันที่รับสตริงอินพุต ค้นหาสตริงในไฟล์ข้อความธรรมดาประมาณ 5,000 ไฟล์ และส่งกลับชื่อของไฟล์ที่ตรงกัน ไฟล์ข้อความแต่ละไฟล์มีขนาดประมาณ 4MB (ไม่มีการบีบอัด)

ปัญหา: ใน PHP ฉันสามารถใช้ exec(grep -l pattern dir/* ) และทำงานให้สำเร็จได้ อย่างไรก็ตาม ด้วยเหตุผลด้านต้นทุน ฉันจะเลือกใช้ แผนเว็บโฮสติ้งที่ใช้ร่วมกัน ซึ่งโดยปกติจะไม่อนุญาตให้ใช้งานโปรแกรม

คุณช่วยแนะนำทางเลือกอื่นแทน grep สำหรับสภาพแวดล้อมเว็บได้ไหม

ฉันเข้าใจแล้วต่อไปนี้:

  1. ไฟล์โปรแกรมไบนารี่สำหรับ grep-alternative ใด ๆ (เช่น sift) สามารถทำงานได้ อย่างไรก็ตาม ปัญหาในการดำเนินการบนเซิร์ฟเวอร์ที่ใช้ร่วมกันจะยังคงอยู่

  2. ฟังก์ชัน PHP preg_match ไม่เหมาะสมเมื่อพิจารณาจากไฟล์จำนวนมากและขนาดของไฟล์

ฉันเปิดรับการใช้งานฟังก์ชันที่คล้าย grep ในภาษาอื่น (เช่น perl หรือ javascript) อย่างไรก็ตาม ฉันไม่แน่ใจว่าประสิทธิภาพจะเทียบได้กับ grep หรือไม่ และปัญหาในการดำเนินการจะยังคงอยู่หรือไม่

ฉันได้ลองค้นหาผู้ให้บริการเว็บโฮสติ้งรายอื่นแล้ว และเข้าใจว่า เซิร์ฟเวอร์เสมือน-ส่วนตัว (VPS) อาจเป็นวิธีแก้ปัญหา อย่างไรก็ตาม ราคาของแผน VPS จากผู้ให้บริการโฮสติ้งทั้งหมดที่ฉันเจอนั้นไม่แพงเลย

แนวทางแก้ไขหรือคำแนะนำสำหรับปัญหานี้คืออะไร?


person Rahim Rajwani    schedule 02.11.2017    source แหล่งที่มา
comment
ฉันจะดู Bluehost- แผนโฮสติ้งที่ใช้ร่วมกันของพวกเขาช่วยให้คุณใช้ grep ได้   -  person Derek Brown    schedule 02.11.2017
comment
อาจซ้ำซ้อนกับ การค้นหาไฟล์ทั้งหมดในโฟลเดอร์เพื่อหาสตริง   -  person Derek Brown    schedule 02.11.2017
comment
ขอบคุณมาก! สำหรับตอนนี้การเลือกใช้ Bluehost นั้นง่ายที่สุด   -  person Rahim Rajwani    schedule 03.11.2017


คำตอบ (1)


วิธีแก้ปัญหาที่เป็นไปได้ขึ้นอยู่กับสิ่งที่ผู้ให้บริการโฮสติ้งเสนอและงบประมาณของคุณ คุณจะมี RDBMS หรือไม่? จากนั้นคุณสามารถใช้การค้นหาข้อความแบบเต็มซึ่งมีข้อเสนอมากมาย ถ้าไม่คุณสามารถใช้ SQLite ซึ่งมีการสนับสนุนการค้นหาข้อความแบบเต็ม

หากคุณต้องยึดติดกับโซลูชันเทคโนโลยีต่ำ โซลูชัน PHP ที่ลิงก์ทางด้านขวาอาจใช้ได้ผลสำหรับคุณ

Perl มี ไฟล์: :Find โมดูลที่คุณสามารถใช้ได้

person jira    schedule 02.11.2017
comment
ขอขอบคุณสำหรับความช่วยเหลือของคุณ. ตอนนี้ฉันเลือก Bluehost และอนุญาตให้ใช้ฟังก์ชัน grep ได้ - person Rahim Rajwani; 03.11.2017