แอปพลิเคชัน: ฉันต้องการเผยแพร่เว็บแอปพลิเคชันที่รับสตริงอินพุต ค้นหาสตริงในไฟล์ข้อความธรรมดาประมาณ 5,000 ไฟล์ และส่งกลับชื่อของไฟล์ที่ตรงกัน ไฟล์ข้อความแต่ละไฟล์มีขนาดประมาณ 4MB (ไม่มีการบีบอัด)
ปัญหา: ใน PHP ฉันสามารถใช้ exec(grep -l pattern dir/* )
และทำงานให้สำเร็จได้ อย่างไรก็ตาม ด้วยเหตุผลด้านต้นทุน ฉันจะเลือกใช้ แผนเว็บโฮสติ้งที่ใช้ร่วมกัน ซึ่งโดยปกติจะไม่อนุญาตให้ใช้งานโปรแกรม
คุณช่วยแนะนำทางเลือกอื่นแทน grep สำหรับสภาพแวดล้อมเว็บได้ไหม
ฉันเข้าใจแล้วต่อไปนี้:
ไฟล์โปรแกรมไบนารี่สำหรับ grep-alternative ใด ๆ (เช่น sift) สามารถทำงานได้ อย่างไรก็ตาม ปัญหาในการดำเนินการบนเซิร์ฟเวอร์ที่ใช้ร่วมกันจะยังคงอยู่
ฟังก์ชัน PHP
preg_match
ไม่เหมาะสมเมื่อพิจารณาจากไฟล์จำนวนมากและขนาดของไฟล์
ฉันเปิดรับการใช้งานฟังก์ชันที่คล้าย grep ในภาษาอื่น (เช่น perl หรือ javascript) อย่างไรก็ตาม ฉันไม่แน่ใจว่าประสิทธิภาพจะเทียบได้กับ grep หรือไม่ และปัญหาในการดำเนินการจะยังคงอยู่หรือไม่
ฉันได้ลองค้นหาผู้ให้บริการเว็บโฮสติ้งรายอื่นแล้ว และเข้าใจว่า เซิร์ฟเวอร์เสมือน-ส่วนตัว (VPS) อาจเป็นวิธีแก้ปัญหา อย่างไรก็ตาม ราคาของแผน VPS จากผู้ให้บริการโฮสติ้งทั้งหมดที่ฉันเจอนั้นไม่แพงเลย
แนวทางแก้ไขหรือคำแนะนำสำหรับปัญหานี้คืออะไร?