คอมพิวเตอร์ Windows อินเทอร์เน็ต

ใช้ ob_start เมื่อรองรับโปรเจ็กต์ php Ob_start - เปิดใช้งานการบัฟเฟอร์เอาต์พุต การค้นหาไม่ดี php start

เริ่มค้นหาเป็นนักจี้เบราว์เซอร์ซึ่งได้รับการส่งเสริมผ่านการดาวน์โหลดฟรีอื่น ๆ และเมื่อติดตั้งแล้วจะเปลี่ยนหน้าแรกของเบราว์เซอร์เป็น start-search.com search.yahoo.com.

หน้าแรกของ start-search.com จะแสดงโฆษณาและลิงก์ผู้สนับสนุนในผลการค้นหาของคุณ และอาจรวบรวมข้อความค้นหาจากคำค้นหาของคุณ การจี้ start-search.com ถูกใช้เพื่อเพิ่มรายได้จากการโฆษณา เช่นเดียวกับการใช้ blackhat SEO เพื่อขยายอันดับหน้าของเว็บไซต์ในผลการค้นหา

เริ่มค้นหา ในทางเทคนิคแล้วไม่ใช่ไวรัส แต่แสดงลักษณะที่เป็นอันตรายมากมาย เช่น ความสามารถของรูทคิตเพื่อเชื่อมต่ออย่างลึกซึ้งในระบบปฏิบัติการ การจี้เบราว์เซอร์ และโดยทั่วไปแล้วเป็นเพียงการรบกวนประสบการณ์ของผู้ใช้ อุตสาหกรรมโดยทั่วไปหมายถึงเป็น “PUP” หรือโปรแกรมที่อาจไม่ต้องการ
Start Search เป็นโฆษณาที่สนับสนุน (ผู้ใช้อาจเห็นแบนเนอร์เพิ่มเติม การค้นหา ป๊อปอัป ป๊อปอันเดอร์ โฆษณาคั่นระหว่างหน้าและลิงก์ในข้อความ) ข้าม เว็บเบราว์เซอร์ปลั๊กอินสำหรับ Internet Explorer(BHO) และ Firefox / Chrome (ปลั๊กอิน) และเผยแพร่ผ่านแพลตฟอร์มการสร้างรายได้ต่างๆ ระหว่างการติดตั้ง ส่วนขยายเบราว์เซอร์ประกอบด้วยคุณสมบัติต่างๆ ที่จะแก้ไขการตั้งค่าเริ่มต้นหรือแบบกำหนดเองของเบราว์เซอร์ รวมถึงหน้าแรก การตั้งค่าการค้นหา และในบางกรณีจะแก้ไขเกณฑ์เวลาในการโหลดของ Internet Explorer วางไฟล์ล็อคไว้ภายใน Firefox เพื่อป้องกันไม่ให้ซอฟต์แวร์คู่แข่งเปลี่ยนการตั้งค่า รวมทั้งปิดการใช้งานนโยบายความปลอดภัยของเนื้อหาของเบราว์เซอร์เพื่อให้สามารถเขียนสคริปต์ข้ามไซต์ของปลั๊กอินได้

เริ่มหน้าแรกของการค้นหาบนคอมพิวเตอร์ของคุณหลังจากที่คุณได้ติดตั้งซอฟต์แวร์ฟรีแวร์ (บันทึกวิดีโอ / สตรีมมิ่ง ตัวจัดการการดาวน์โหลด หรือผู้สร้าง PDF) ที่รวมอยู่ในการติดตั้งนักจี้เบราว์เซอร์นี้
ตัวอย่างเช่น เมื่อคุณติดตั้ง VPlay คุณจะตกลงเปลี่ยนหน้าแรกของเบราว์เซอร์เป็น start-search.comและเครื่องมือค้นหาเริ่มต้นเป็น search.yahoo.com


อย่างไรก็ตาม เมื่อคุณถอนการติดตั้ง VPlay จากคอมพิวเตอร์ของคุณ การตั้งค่าเริ่มต้นของเว็บเบราว์เซอร์จะไม่ถูกกู้คืน ซึ่งหมายความว่า คุณจะต้องลบหน้าแรกของ start-search.com ออกจากเว็บเบราว์เซอร์ที่คุณชื่นชอบด้วยตนเอง

คุณควร ให้ความสนใจเสมอเมื่อติดตั้งซอฟต์แวร์เพราะบ่อยครั้ง โปรแกรมติดตั้งซอฟต์แวร์รวมถึงการติดตั้งเสริม เช่น นักจี้เบราว์เซอร์ start-search.com โปรดใช้ความระมัดระวังในสิ่งที่คุณตกลงที่จะติดตั้ง
เลือกใช้การติดตั้งแบบกำหนดเองเสมอและยกเลิกการเลือกสิ่งที่ไม่คุ้นเคย โดยเฉพาะซอฟต์แวร์เสริมที่คุณไม่ต้องการดาวน์โหลดและติดตั้งตั้งแต่แรก มันไปโดยไม่บอกว่าคุณไม่ควรติดตั้งซอฟต์แวร์ที่คุณไม่ไว้วางใจ

วิธีการเอาออก start-search.com (คู่มือการกำจัดไวรัส)

หน้านี้เป็นคู่มือที่ครอบคลุม ซึ่งจะลบ start-search.com จาก Internet Explorer, Firefox และ Google Chrome ของคุณ
โปรดดำเนินการทุกขั้นตอนตามลำดับที่ถูกต้อง หากมีข้อสงสัยหรือข้อสงสัยประการใด หยุดและขอความช่วยเหลือจากเรา




ขั้นตอนที่ 1: ถอนการติดตั้ง start-search.com โปรแกรมที่เป็นอันตรายจากคอมพิวเตอร์ของคุณ

ในขั้นแรกนี้ เราจะพยายามระบุและลบโปรแกรมที่เป็นอันตรายที่อาจติดตั้งไว้ในคอมพิวเตอร์ของคุณ

หากคุณประสบปัญหาขณะพยายามถอนการติดตั้งโปรแกรม start-search.com คุณสามารถใช้เพื่อลบโปรแกรมที่ไม่ต้องการนี้ออกจากเครื่องของคุณโดยสมบูรณ์

ขั้นตอนที่ 2: ลบ start-search.com virus จาก Internet Explorer, Firefox และ Google Chrome

ลบ start-search.com virus จาก Internet Explorer

คุณสามารถรีเซ็ตการตั้งค่า Internet Explorer เพื่อกลับสู่สถานะเดิมเมื่อติดตั้ง Internet Explorer บนพีซีของคุณเป็นครั้งแรก

ลบ start-search.com virus ออกจาก Mozilla Firefox

หากคุณมีปัญหากับ Firefox การรีเซ็ตสามารถช่วยได้ คุณลักษณะการรีเซ็ตสามารถแก้ไขปัญหาต่างๆ ได้โดยการกู้คืน Firefox กลับเป็นสถานะเริ่มต้นจากโรงงาน ในขณะที่บันทึกข้อมูลสำคัญของคุณ เช่น บุ๊กมาร์ก รหัสผ่าน ข้อมูลกรอกแบบฟอร์มบนเว็บอัตโนมัติ ประวัติการเข้าชม และแท็บที่เปิดอยู่

บันทึก: โปรไฟล์ Firefox เก่าของคุณจะถูกวางไว้บนเดสก์ท็อปของคุณในโฟลเดอร์ชื่อ “ ข้อมูล Firefox เก่า“. หากการรีเซ็ตไม่สามารถแก้ปัญหาของคุณได้ คุณสามารถกู้คืนข้อมูลบางส่วนที่ไม่ได้บันทึกไว้โดยการคัดลอกไฟล์ไปยังโปรไฟล์ใหม่ที่สร้างขึ้น หากคุณไม่ต้องการโฟลเดอร์นี้อีกต่อไป คุณควรลบทิ้งเนื่องจากมีข้อมูลที่ละเอียดอ่อน

ลบ start-search.com virus จาก Google Chrome

ขั้นตอนที่ 3: ลบ start-search.com browser hijacker ด้วย AdwCleaner

ยูทิลิตี AdwCleaner จะสแกนคอมพิวเตอร์และเว็บเบราว์เซอร์ของคุณเพื่อหาไฟล์ที่เป็นอันตราย "start-search.com" ส่วนขยายของเบราว์เซอร์ และรีจิสตรีคีย์ ที่อาจได้รับการติดตั้งบนคอมพิวเตอร์ของคุณโดยที่คุณไม่รู้ตัว

ขั้นตอนที่ 4: ลบ start-search.com virus จากคอมพิวเตอร์ของคุณด้วย Malwarebytes Anti-Malware Free

Malwarebytes Anti-Malware Free ใช้เทคโนโลยีชั้นนำของอุตสาหกรรมในการตรวจจับและลบร่องรอยของมัลแวร์ทั้งหมด รวมถึงเวิร์ม โทรจัน รูทคิต อันธพาล โปรแกรมเรียกเลขหมาย สปายแวร์ และอื่นๆ
สิ่งสำคัญคือต้องทราบว่า Malwarebytes Anti-Malware ทำงานได้ดีและควรทำงานควบคู่ไปกับซอฟต์แวร์ป้องกันไวรัสโดยไม่มีข้อขัดแย้ง

  1. สามารถดาวน์โหลด ดาวน์โหลด Malwarebytes Anti-Malwareจากลิงค์ด้านล่าง
    (ลิงค์นี้จะเปิดหน้าเว็บใหม่ซึ่งคุณสามารถดาวน์โหลด Malwarebytes Anti-Malware ได้ฟรี)
  2. เมื่อดาวน์โหลดแล้ว ให้ปิดโปรแกรมทั้งหมด จากนั้นดับเบิลคลิกที่ไอคอนบนเดสก์ท็อปชื่อ “ mbam-setup-consumer-2.00.xx "เพื่อเริ่มการติดตั้ง Malwarebytes Anti-Malware

    คุณอาจได้รับกล่องโต้ตอบการควบคุมบัญชีผู้ใช้เพื่อถามว่าคุณต้องการเรียกใช้ไฟล์นี้หรือไม่ หากสิ่งนี้เกิดขึ้น คุณควรคลิก “ ใช่”เพื่อดำเนินการติดตั้งต่อ
  3. เมื่อการติดตั้งเริ่มต้นขึ้น คุณจะเห็น ซึ่งจะแนะนำคุณตลอดขั้นตอนการติดตั้ง


    ในการติดตั้ง Malwarebytes Anti-Malware บนเครื่องของคุณ ปฏิบัติตามคำแนะนำโดยคลิกที่ปุ่ม “ ต่อไป"ปุ่ม.

  4. เมื่อติดตั้งแล้ว Malwarebytes Anti-Malware จะเริ่มทำงานโดยอัตโนมัติ และคุณจะเห็นข้อความแจ้งว่าคุณควรอัปเดตโปรแกรม และไม่เคยมีการสแกนระบบของคุณเลย เพื่อเริ่มการสแกนระบบ คุณสามารถคลิกที่ “ แก้ไขเดี๋ยวนี้"ปุ่ม.


    หรือคุณสามารถคลิกที่ “ สแกน"แท็บและเลือก" สแกนภัยคุกคาม“ จากนั้นคลิกที่ "ตรวจเดี๋ยวนี้"ปุ่ม.

  5. Malwarebytes Anti-Malware จะตรวจหาการอัปเดต และหากมี คุณจะต้องคลิกที่ " อัพเดทตอนนี้"ปุ่ม.

  6. Malwarebytes Anti-Malware จะเริ่มสแกนคอมพิวเตอร์ของคุณเพื่อหาไวรัส start-search.com เมื่อ Malwarebytes Anti-Malware กำลังสแกน จะมีลักษณะดังภาพด้านล่าง

  7. เมื่อการสแกนเสร็จสิ้น คุณจะเห็นหน้าจอแสดงการติดมัลแวร์ที่ Malwarebytes 'Anti-Malware ตรวจพบ หากต้องการลบโปรแกรมที่เป็นอันตรายที่ Malwarebytes Anti-malware พบ ให้คลิกที่ “ กักตัวทั้งหมด” ปุ่มแล้วคลิกที่ “ สมัครตอนนี้"ปุ่ม.


    โปรดทราบว่าการติดไวรัสที่พบอาจแตกต่างจากที่แสดงในภาพ
  8. Malwarebytes Anti-Malware จะกักกันไฟล์ที่เป็นอันตรายและรีจิสตรีคีย์ที่พบทั้งหมด เมื่อลบไฟล์ Malwarebytes Anti-Malware อาจต้องรีบูตเพื่อลบบางไฟล์ หากระบบแสดงข้อความระบุว่าจำเป็นต้องรีบูตเครื่องคอมพิวเตอร์ โปรดอนุญาตให้ทำเช่นนั้น


    หลังจากที่คอมพิวเตอร์ของคุณจะรีสตาร์ท คุณควรเปิด Malwarebytes Anti-Malware และทำการสแกน “Threat Scan” อีกครั้งเพื่อตรวจสอบว่าไม่มีภัยคุกคามเหลืออยู่

ขั้นตอนที่ 5: ตรวจสอบการติดไวรัส start-search.com อีกครั้งด้วย HitmanPro

HitmanPro เป็นเครื่องสแกนความคิดเห็นที่สอง ออกแบบมาเพื่อช่วยเหลือคอมพิวเตอร์ของคุณจากมัลแวร์ (ไวรัส โทรจัน รูทคิต ฯลฯ) ที่ติดไวรัสคอมพิวเตอร์ของคุณ แม้ว่าคุณจะใช้มาตรการรักษาความปลอดภัยทั้งหมด (เช่น ซอฟต์แวร์ป้องกันไวรัส ไฟร์วอลล์ ฯลฯ) HitmanPro ได้รับการออกแบบมาเพื่อทำงานร่วมกับโปรแกรมรักษาความปลอดภัยที่มีอยู่โดยไม่มีข้อขัดแย้งใดๆ มันสแกนคอมพิวเตอร์อย่างรวดเร็ว (น้อยกว่า 5 นาที) และไม่ทำให้คอมพิวเตอร์ช้าลง

(PHP 4, PHP 5, PHP 7)

ob_start - เปิดใช้งานการบัฟเฟอร์เอาต์พุต

คำอธิบาย

บูล ob_start ([ เรียกได้$ output_callback = โมฆะ [, int $ chunk_size = 0 [, int $ แฟล็ก = PHP_OUTPUT_HANDLER_STDFLAGS ]]])

ฟังก์ชันนี้ช่วยให้สามารถบัฟเฟอร์เอาต์พุตได้ หากบัฟเฟอร์เอาต์พุตทำงานอยู่ สคริปต์เอาต์พุตจะไม่ถูกส่ง (ยกเว้นส่วนหัว) แต่จะถูกเก็บไว้ในบัฟเฟอร์ภายใน

เนื้อหาของบัฟเฟอร์ภายในนี้สามารถคัดลอกไปยังตัวแปรสตริงได้โดยใช้ ob_get_contents ()... ในการแสดงเนื้อหาของบัฟเฟอร์ภายใน ให้ใช้ ob_end_flush ()... หรือคุณสามารถใช้ ob_end_clean ()เพื่อทำลายเนื้อหาของบัฟเฟอร์

ความสนใจ

เว็บเซิร์ฟเวอร์บางตัว (เช่น Apache) เปลี่ยนไดเร็กทอรีการทำงานของสคริปต์เมื่อมีการเรียกฟังก์ชันเรียกกลับ คุณสามารถนำกลับมาใช้ใหม่ได้โดยใช้ chdir (ชื่อเดอร์ ($ _ SERVER ["SCRIPT_FILENAME"]))ในฟังก์ชันการโทรกลับ

บัฟเฟอร์เอาต์พุตถูกผลักไปที่สแต็ก เช่น อนุญาตให้เรียกได้ ob_start ()หลังจากโทรหาคนอื่นที่ใช้งาน ob_start ()... ในกรณีนี้จำเป็นต้องโทร ob_end_flush ()จำนวนครั้งที่เหมาะสม หากมีการเรียกกลับหลายรายการ เอาต์พุตจะถูกกรองตามลำดับสำหรับแต่ละรายการในลำดับที่ซ้อนกัน

รายการพารามิเตอร์

คุณสามารถตั้งค่าพารามิเตอร์ output_callback ทางเลือกได้ ฟังก์ชันนี้รับสตริงเป็นอาร์กิวเมนต์และต้องส่งคืนสตริงด้วย มันถูกเรียกในการรีเซ็ต (ส่ง) หรือล้าง (ด้วย ob_flush (), ob_clean ()หรือฟังก์ชันที่คล้ายกัน) หรือหากบัฟเฟอร์เอาต์พุตถูกล้างไปยังเบราว์เซอร์เมื่อสิ้นสุดคำขอ เมื่อเรียกใช้ฟังก์ชัน output_callback ฟังก์ชันจะได้รับเนื้อหาของบัฟเฟอร์และควรส่งคืนเนื้อหาที่อัปเดตสำหรับบัฟเฟอร์เอาต์พุตเพื่อส่งไปยังเบราว์เซอร์ หาก output_callback ไม่ใช่ฟังก์ชันที่ถูกต้อง ฟังก์ชันที่บันทึกไว้จะคืนค่า เท็จ... คำอธิบายฟังก์ชันสำหรับพารามิเตอร์นี้:

สตริง ตัวจัดการ (string $ buffer [, int $ เฟส ])

กันชน เนื้อหาของบัฟเฟอร์เอาต์พุตเฟส บิตมาสก์คงที่ PHP_OUTPUT_HANDLER_ *.

ถ้า output_callback กลับมา เท็จจากนั้นข้อมูลเดิมจะถูกส่งไปยังเบราว์เซอร์โดยไม่มีการเปลี่ยนแปลง

พารามิเตอร์ output_callback สามารถละเว้นได้โดยการส่งผ่านค่า โมฆะ.

ob_end_clean (), ob_end_flush (), ob_clean (), ob_flush ()และ ob_start ()ไม่สามารถเรียกจากฟังก์ชันเรียกกลับได้เนื่องจากพฤติกรรมไม่สามารถคาดเดาได้ หากคุณต้องการลบเนื้อหาของบัฟเฟอร์ ให้ส่งคืน "" (สตริงว่าง) จากฟังก์ชันเรียกกลับ คุณยังเรียกใช้ฟังก์ชันไม่ได้ print_r ($ นิพจน์ จริง)หรือ highlight_file ($ ชื่อไฟล์ จริง)จากการโทรกลับบัฟเฟอร์เอาต์พุต

ความคิดเห็น:

ใน PHP 4.0.4 ฟังก์ชั่น ob_gzhandler ()ได้รับการแนะนำเพื่ออำนวยความสะดวกในการส่งข้อมูลที่เข้ารหัส gz ไปยังเว็บเบราว์เซอร์ที่สนับสนุนหน้าเว็บที่บีบอัด ob_gzhandler ()กำหนดประเภทของการเข้ารหัสเนื้อหาที่เบราว์เซอร์ยอมรับและส่งคืนผลลัพธ์ตามนั้น

ก้อน_ขนาด

ถ้าพารามิเตอร์ Chunk_size ทางเลือกถูกส่งผ่าน บัฟเฟอร์จะถูกฟลัชหลังจากเอาท์พุตใดๆ ที่มีขนาดใหญ่กว่าหรือเท่ากับ chunk_size ค่าเริ่มต้น 0 หมายความว่าฟังก์ชันเอาต์พุตจะถูกเรียกเมื่อปิดบัฟเฟอร์

ก่อน PHP 5.4.0 ค่า 1 เป็นค่าพิเศษที่กำหนดพารามิเตอร์ ก้อน_ขนาดที่ 4096

พารามิเตอร์แฟล็กเป็นบิตมาสก์ที่ควบคุมการดำเนินการที่สามารถทำได้บนบัฟเฟอร์เอาต์พุต โดยค่าเริ่มต้น จะอนุญาตให้ล้างข้อมูลบัฟเฟอร์เอาต์พุต ล้าง และลบ ซึ่งเหมือนกับ | | , หรือ PHP_OUTPUT_HANDLER_STDFLAGSเป็นตัวย่อของชุดค่าผสมนี้

แต่ละแฟล็กจะควบคุมการเข้าถึงชุดของฟังก์ชันดังที่อธิบายไว้ด้านล่าง:

คงที่ ฟังก์ชั่น
PHP_OUTPUT_HANDLER_CLEANABLE ob_clean (), ob_end_clean (), และ ob_get_clean ().
PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush (), ob_flush (), และ ob_get_flush ().
PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean (), ob_end_flush (), และ ob_get_flush ().

ส่งคืนค่า

คืนสินค้า จริงเมื่อเสร็จสิ้นสำเร็จหรือ เท็จในกรณีที่เกิดข้อผิดพลาด

รายการการเปลี่ยนแปลง

เวอร์ชั่น คำอธิบาย
7.0.0 ถ้า ob_start ()ใช้ภายในฟังก์ชันเรียกกลับของบัฟเฟอร์เอาต์พุต ฟังก์ชันนี้จะไม่ส่งผลให้เกิดข้อผิดพลาดอีกต่อไป E_ERRORและจะเรียก E_RECOVERABLE_ERRORโดยอนุญาตให้ตัวจัดการข้อผิดพลาดบุคคลที่สามจับได้
5.4.0 พารามิเตอร์ที่สาม ob_start ()เปลี่ยนจากบูลีน ( บูลีน) ของพารามิเตอร์การลบ (ซึ่งเมื่อตั้งค่าเป็น เท็จป้องกันการลบบัฟเฟอร์จนกว่าสคริปต์จะออก) เป็นจำนวนเต็ม ( จำนวนเต็ม) พารามิเตอร์แฟล็ก น่าเสียดาย นี่หมายความว่ามีการใช้ API ที่เข้ากันไม่ได้สำหรับโค้ดที่ใช้พารามิเตอร์ตัวที่สามก่อน PHP 5.4.0 ดูตัวอย่างแฟล็กเพื่อทำความเข้าใจวิธีการทำงานกับโค้ดเพื่อให้เข้ากันได้กับทั้งสองเวอร์ชัน
5.4.0 พารามิเตอร์ ก้อน_ขนาดที่ตั้งอยู่ใน 1 ตอนนี้ส่งออก 1 ไบต์ไปยังบัฟเฟอร์เอาต์พุต
4.3.2 ฟังก์ชั่นจะกลับมา เท็จในกรณีที่ output_callback ล้มเหลว

ตัวอย่างของ

ตัวอย่าง # 1 ตัวอย่างฟังก์ชันเรียกกลับที่ผู้ใช้กำหนด

ฟังก์ชันเรียกกลับ (บัฟเฟอร์ $)
{
// แทนที่แอปเปิ้ลทั้งหมดด้วยส้ม
ส่งคืน (str_replace ("แอปเปิ้ล", "ส้ม", $ บัฟเฟอร์));
}

Ob_start ("โทรกลับ");

?>


มันเหมือนกับการเปรียบเทียบแอปเปิ้ลกับส้ม




ob_end_flush ();

PHP มีฟังก์ชันหลายอย่างที่ค้นหาสตริงหนึ่งภายในอีกสตริงหนึ่ง บางคนส่งคืนตำแหน่งของสตริงที่พบ (strpos, strrpos และที่เกี่ยวข้อง) และส่งคืนส่วนหนึ่งของสตริงดั้งเดิม (strstr และ strrchr) ฟังก์ชันการค้นหาจะคืนค่า false หากไม่พบสตริงที่คุณกำลังค้นหาในต้นฉบับ

หากเป้าหมายของคุณเป็นเพียงการพิจารณาว่ามีสตริงหนึ่งอยู่ในอีกสตริงหนึ่งหรือไม่ ตัวเลือกที่มีประสิทธิภาพมากที่สุดคือ strpos

strpos

ฟังก์ชัน strpos ค้นหาอาร์กิวเมนต์สตริงแรกสำหรับอาร์กิวเมนต์ที่สอง และส่งกลับตำแหน่งดัชนีแบบอิงศูนย์ของรายการที่ตรงกันครั้งแรกภายในสตริง หรือเป็นเท็จหากไม่พบ ตัวอย่างต่อไปนี้แสดงให้เห็น:

$ str =; // ค้นหาการเกิดขึ้นครั้งแรกของ "need" ภายใน $ str$ pos = strpos ($ str "ต้องการ"); // ประเภทการแสดงผลและมูลค่าของ $ pos var_dump ($ pos); // อินท์ (3)

แม้ว่าเราจะแสดงผลลัพธ์โดยใช้ var_dump ด้านบน แต่การตรวจสอบโดยทั่วไปของค่าส่งคืนสำหรับ strpos จะดำเนินการดังนี้:

// วิธีตรวจสอบค่าส่งคืน strpos ($ pos) if ($ pos! == false) (// หากพบสตริงการค้นหา echo "พบที่ตำแหน่ง $ pos";) อื่น (echo "ไม่พบ";)

อย่าลืมใช้ตัวดำเนินการ === หรือ! == เพื่อเปรียบเทียบค่าส่งคืนของฟังก์ชัน strpos เป็นเท็จ หากพบสตริงย่อยที่จุดเริ่มต้นของสตริง strpos จะคืนค่า 0 ซึ่ง == หรือ! = ตัวดำเนินการ จะแปลงเป็นเท็จ

คุณสามารถระบุออฟเซ็ตเพื่อเริ่มการค้นหาด้วยจำนวนอักขระที่ระบุตั้งแต่เริ่มต้นสตริง ดังตัวอย่างนี้:

/ * อาร์กิวเมนต์ strpos: * สตริงหัวเรื่อง (aka กองหญ้า), สตริงการค้นหา (เข็ม), ออฟเซ็ต (ตัวเลือก) * / // เริ่มค้นหา "ต้องการ" จากอักขระ 10 ใน $ str$ pos = strpos ($ str "ต้องการ", 10); // ยี่สิบ

เมื่อเริ่มการค้นหาจากอักขระ 10 ผลลัพธ์คือ 20 ตำแหน่งดัชนีของจุดเริ่มต้นของคำว่า needle

strrpos

ฟังก์ชัน strrpos ค้นหาตำแหน่งของสตริงย่อยที่เกิดขึ้นครั้งสุดท้ายในสตริง:

// ตัวอย่างสตริงที่จะใช้สำหรับการค้นหา$ str = "เราต้องหาเข็มในกองหญ้า"; // ค้นหาตำแหน่งที่เกิดล่าสุดของ "need" ใน $ str$ pos = strrpos ($ str "ต้องการ"); // ยี่สิบ

ฟังก์ชัน strrpos ยังมีพารามิเตอร์ออฟเซ็ตที่เป็นตัวเลือกซึ่งสามารถเป็นค่าบวกหรือค่าลบได้ หากออฟเซ็ตเป็นค่าบวก จำนวนอักขระที่จุดเริ่มต้นของสตริงนั้นจะถูกแยกออกจากการค้นหา พิจารณาตัวอย่างต่อไปนี้:

// ค้นหาจากขวาสำหรับ "เรา" ไม่รวมอักขระ 3 ตัวแรก$ pos = strrpos ($ str, "เรา", 3); var_dump ($ pos); // บูล (เท็จ)

ผลลัพธ์เป็นเท็จเนื่องจากไม่พบ "เรา" เมื่อการค้นหาไม่รวมอักขระสามตัวแรก

หากออฟเซ็ตเป็นค่าลบ อักขระจำนวนมากที่ส่วนท้ายของสตริงนั้นจะไม่รวมอยู่ในการค้นหา เราสาธิตด้วยการค้นหาสองครั้งที่ระบุออฟเซ็ตเชิงลบ:

// ค้นหาจากด้านขวาสำหรับ "hay" ไม่รวมอักขระ 5 ตัวสุดท้าย$ pos = strrpos ($ str, "หญ้าแห้ง", - 5); // int (34) // ค้นหาจากด้านขวาไม่รวมอักขระ 10 ตัวสุดท้าย$ pos = strrpos ($ str, "หญ้าแห้ง", - 10); // บูล (เท็จ)

ผลลัพธ์สุดท้ายข้างต้นเป็นเท็จ เนื่องจากไม่พบ "hay" เมื่อการค้นหาไม่รวมอักขระ 10 ตัวสุดท้าย

โปรดสังเกตว่าค่าส่งกลับของฟังก์ชัน strrpos ให้ตำแหน่งตั้งแต่เริ่มต้นสตริง แม้ว่าการค้นหาจะเริ่มจากด้านขวา

สตริปและสตริปโป

ฟังก์ชัน strpos และ strrpos ดำเนินการค้นหาโดยคำนึงถึงขนาดตัวพิมพ์ PHP จัดเตรียมฟังก์ชัน stripos และ stripos เพื่อทำการค้นหาแบบไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ พวกมันทำงานเหมือนกับตัวพิมพ์เล็กและตัวพิมพ์ใหญ่:

// ตัวอย่างสตริงที่จะใช้สำหรับการค้นหา$ str = "เราต้องหาเข็มในกองหญ้า"; // ค้นหาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่สำหรับ "เรา"$ pos = stripos ($ str "เรา"); // int (0) // ทำการค้นหาแบบตรงตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่จากด้านขวาสำหรับ "Need"$ pos = strripos ($ str "ต้องการ"); // int (20)

การค้นหาที่ไม่คำนึงถึงขนาดตัวพิมพ์สำหรับ "เรา" ส่งผลให้เป็น 0 ซึ่งบ่งชี้ว่าพบที่จุดเริ่มต้นของสตริงที่เรากำลังค้นหา การค้นหาที่ไม่คำนึงถึงขนาดตัวพิมพ์สำหรับ "Need" จากด้านขวา (โดยใช้ stripos) จะพบที่ตำแหน่ง 20

strstr

ฟังก์ชัน strstr ค้นหาอาร์กิวเมนต์สตริงแรกสำหรับอาร์กิวเมนต์ที่สอง หากพบที่สองภายในรายการแรก strstr จะส่งกลับส่วนของสตริงเดิมโดยเริ่มจากการพบครั้งแรกจนถึงจุดสิ้นสุดของสตริง

// ตัวอย่างสตริง $ str = "เราต้องหาเข็มในกองหญ้า"; // ค้นหา "the" ใน $ str $ newstr = strstr ($ str, "the"); var_dump ($ newstr); // string (27) "เข็มในกองหญ้า"

ฟังก์ชัน strstr จะคืนค่า "the" ตัวแรกที่พบ ร่วมกับสตริงเดิมที่เหลือ

หากคุณส่งผ่าน true เป็นอาร์กิวเมนต์ที่สามไปยัง strstr ส่วนของสตริงเดิม ก่อนสตริงที่พบจะถูกส่งคืน:

// ส่งผ่าน true เพื่อคืนค่าส่วนของ $ str ก่อน "the"$ newstr = strstr ($ str, "the", จริง); var_dump ($ newstr); // string (16) "เราต้องหาให้เจอ"

คราวนี้ฟังก์ชัน strstr จะคืนค่าทุกอย่างก่อน "the" ตัวแรกในสตริง

PHP ยังมีฟังก์ชัน stristr ซึ่งทำงานเหมือนกับ strstr ทุกประการ ยกเว้นว่าจะทำการค้นหาแบบคำนึงถึงขนาดตัวพิมพ์

strrhr

ฟังก์ชัน strrchr ค้นหาอาร์กิวเมนต์สตริงแรกจากด้านขวาสำหรับอักขระที่เราระบุในอาร์กิวเมนต์ที่สอง ฟังก์ชันส่งคืนส่วนของสตริงจากตำแหน่งของอินสแตนซ์ที่พบของอักขระนั้นไปยังจุดสิ้นสุดของสตริง:

// ตัวอย่างสตริง $ str = "เราต้องหาเข็มในกองหญ้า"; // ค้นหาจากด้านขวาสำหรับ "s" ใน $ str$ newstr = strstr ($ str, "s"); var_dump ($ newstr); // สตริง (6) "สแต็ก"

โปรดสังเกตว่าไม่เหมือน strstr หากอาร์กิวเมนต์ที่สองประกอบด้วยอักขระหลายตัว จะใช้เฉพาะตัวแรกเท่านั้น:

// ทดสอบด้วยอาร์กิวเมนต์ที่สองแบบหลายอักขระ$ newstr = strrchr ($ str "ที่"); var_dump ($ newstr); // สตริง (5) "แทค"

แทนที่จะส่งคืน "กองหญ้าแห้ง" ฟังก์ชัน strrchr จะส่งกลับ "tack" โดยจะใช้เฉพาะตัวอักษรตัวแรกของอาร์กิวเมนต์ที่สองในการค้นหา

ตามที่ฉันเข้าใจ ไซต์จะถูกสร้างขึ้นโดยไม่ต้องใช้เฟรมเวิร์ก? จากนั้นนักพัฒนาที่คุ้นเคยของฉันก็หึ่งกับหูของพวกเขาทั้งหมดว่าจำเป็นต้องเรียนรู้กรอบงาน Yii

2) แค่อยากถาม .. ตัวอย่างการสร้างร้านค้าออนไลน์ที่พิจารณาในหลักสูตรเป็นเชิงวิชาการมากกว่า? โครงการเชิงพาณิชย์จริงอาจถูกสร้างขึ้นโดยใช้เฟรมเวิร์ก เนื่องจาก สิ่งนี้ช่วยเพิ่มประสิทธิภาพกระบวนการพัฒนาอย่างมากโดยใช้เทมเพลตโค้ดทั่วไป คำตอบสำหรับคำถามนี้จะช่วยชี้แจงสิ่งที่เกิดขึ้น ... PHP Start | การปฏิบัติยังคงคุ้มค่าที่จะผ่านเพื่อทำความเข้าใจตรรกะทั่วไปหรือไม่?

ตอบ:

1) ธุรกิจที่คุ้นเคยนั้นถูกต้อง ฉันก็คิดอย่างนั้นเช่นกัน แต่ทุกกรอบงานต้องมีการเตรียมการ เช่น ความรู้ เมื่อฉันกำลังสร้างระบบ MVC ในทางปฏิบัติ ฉันพยายามปฏิบัติตามแนวทางที่ใช้ในเฟรมเวิร์ก ดังนั้น PHP Start (ทฤษฎีและการปฏิบัติ) จะช่วยในการเตรียมการ หลังจากนั้นคุณสามารถเริ่มเรียนรู้ yii2 ได้อย่างปลอดภัย (หรือสิ่งที่คล้ายกัน)

ที่อยู่ที่เก็บโครงการ:

คำถามที่ 1:

ไม่สามารถกำจัดข้อผิดพลาด:

หมายเหตุ: การใช้ค่าคงที่ที่ไม่ได้กำหนด _FILE_ - ถือว่า "_FILE_" ใน /Users/Elios/Sites/Test/index.php ในบรรทัดที่ 10

บอกฉันทีว่ามันจะเป็นอย่างไร

ตอบ:

ก่อนและหลัง ไฟล์คุณต้องเขียน 2 ตัวอักษร _

__ไฟล์__เป็นของค่าคงที่ PHP "มายากล" รายละเอียดเพิ่มเติมที่นี่