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

ฟังก์ชั่น substr() ส่งกลับส่วนหนึ่งของสตริง

บันทึก:หากพารามิเตอร์เริ่มต้นเป็นตัวเลขติดลบและความยาวน้อยกว่าหรือเท่ากับจุดเริ่มต้น ความยาวจะกลายเป็น 0

ไวยากรณ์

ย่อย( สตริง, เริ่มต้น, ความยาว)


พารามิเตอร์ คำอธิบาย
เชือก ที่จำเป็น. ระบุสตริงที่จะส่งคืนส่วนหนึ่งของ
เริ่ม ที่จำเป็น. ระบุตำแหน่งที่จะเริ่มต้นในสตริง
  • จำนวนบวก - เริ่มต้นที่ตำแหน่งที่ระบุในสตริง
  • จำนวนลบ - เริ่มต้นที่ตำแหน่งที่ระบุจากจุดสิ้นสุดของสตริง
  • 0 - เริ่มต้นที่อักขระตัวแรกในสตริง
ความยาว ไม่จำเป็น. ระบุความยาวของสตริงที่ส่งคืน ค่าเริ่มต้นอยู่ที่ส่วนท้ายของสตริง
  • จำนวนบวก - ความยาวที่จะส่งคืนจากพารามิเตอร์เริ่มต้น
  • จำนวนลบ - ความยาวที่จะส่งคืนจากจุดสิ้นสุดของสตริง

รายละเอียดทางเทคนิค

มูลค่าส่งคืน: ส่งคืนส่วนที่แยกของสตริง หรือส่งคืน FALSE เมื่อล้มเหลว หรือส่งคืนสตริงว่าง
เวอร์ชัน PHP: 4+
บันทึกการเปลี่ยนแปลง: ใน PHP เวอร์ชัน 5.2.2 ถึง 5.2.6 หากพารามิเตอร์ start ระบุตำแหน่งของการตัดทอนที่เป็นลบหรือเกินกว่านั้น FALSE จะถูกส่งกลับ เวอร์ชันอื่นจะได้รับสตริงตั้งแต่เริ่มต้น

ตัวอย่างเพิ่มเติม

ตัวอย่างที่ 1

การใช้พารามิเตอร์เริ่มต้นที่มีจำนวนบวกและลบต่างกัน:

echo substr("สวัสดีชาวโลก",10)"
";
echo substr("สวัสดีชาวโลก",1)"
";
echo substr("สวัสดีชาวโลก",3)"
";
echo substr("สวัสดีชาวโลก",7)"
";

echo substr("สวัสดีชาวโลก",-1)"
";
echo substr("สวัสดีชาวโลก",-10)"
";
echo substr("สวัสดีชาวโลก",-8)"
";
echo substr("สวัสดีชาวโลก",-4)"
";

( 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(dirname($_SERVER["SCRIPT_FILENAME"]))ในฟังก์ชันโทรกลับ

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

หากมีการใช้งานฟังก์ชันการเรียกกลับหลายฟังก์ชัน เอาต์พุตจะถูกกรองตามลำดับสำหรับแต่ละฟังก์ชันตามลำดับการซ้อน

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

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

- คำอธิบายฟังก์ชันสำหรับพารามิเตอร์นี้: สตริงตัวจัดการ สตริง $buffer int $เฟส.

บัฟเฟอร์ ob_flush()เนื้อหาของบัฟเฟอร์เอาต์พุต

เฟส โมฆะ.

ob_end_clean(), ob_end_flush(), ฟังก์ชันนี้รับสตริงเป็นอาร์กิวเมนต์และต้องส่งคืนสตริงด้วย, สามารถระบุพารามิเตอร์ทางเลือก output_callback ได้บิตมาสก์ของค่าคงที่ ob_start() PHP_OUTPUT_HANDLER_* ถ้า output_callback กลับมาจากนั้นข้อมูลต้นฉบับจะถูกส่งไปยังเบราว์เซอร์โดยไม่มีการเปลี่ยนแปลง สามารถละเว้นพารามิเตอร์ output_callback ได้โดยการส่งค่าและ

ไม่สามารถเรียกจากฟังก์ชันการโทรกลับได้ เนื่องจากพฤติกรรมของฟังก์ชันเหล่านี้ไม่สามารถคาดเดาได้:

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

highlight_file($ชื่อไฟล์, จริง)

จากฟังก์ชันการเรียกกลับบัฟเฟอร์เอาต์พุต 0 ความคิดเห็น

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

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

หมายความว่าฟังก์ชันเอาต์พุตจะถูกเรียกใช้เมื่อปิดบัฟเฟอร์

ก่อน PHP 5.4.0 ค่า เป็นค่าพิเศษที่กำหนดพารามิเตอร์
PHP_OUTPUT_HANDLER_CLEANABLE ฟังก์ชันนี้รับสตริงเป็นอาร์กิวเมนต์และต้องส่งคืนสตริงด้วย, ob_end_clean(), และ ob_get_clean().
PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush(), สามารถระบุพารามิเตอร์ทางเลือก output_callback ได้, และ ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean(), ob_end_flush(), และ ob_get_flush().

ส่งกลับค่า

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

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

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

ในกรณีที่ไม่สามารถดำเนินการ output_callback ได้

ตัวอย่าง

ตัวอย่างที่ 1 ตัวอย่างฟังก์ชันการโทรกลับที่ผู้ใช้กำหนด
{
ฟังก์ชั่นการเรียกกลับ ($บัฟเฟอร์)
// แทนที่แอปเปิ้ลทั้งหมดด้วยส้ม
}

return (str_replace("แอปเปิ้ล", "ส้ม", $buffer));

?>


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






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

ob_end_flush();

สวัสดีฮับ!

วันนี้ฉันอยากจะแนะนำเว็บมาสเตอร์มือใหม่ให้รู้จักกับวิธีการต่างๆ ในการใช้การบัฟเฟอร์เอาต์พุตใน PHP เว็บมาสเตอร์ที่มีประสบการณ์ไม่น่าจะพบสิ่งที่มีประโยชน์ที่นี่ แม้ว่า - ใครจะรู้?


ดังที่คุณทราบกันดีว่าการบัฟเฟอร์เอาต์พุตใน php ถูกควบคุมโดยชุดฟังก์ชันที่ขึ้นต้นด้วย "ob_" สิ่งที่สำคัญที่สุดคือ ob_start เมื่อเปิดตัว จะรวบรวมเอาต์พุตที่ตามมา นั่นคือ print() echo ทุกชนิด ฯลฯ ซึ่งจะมอบให้กับผู้เยี่ยมชมในรูปแบบของหน้า html และถ้าเราเริ่มบัฟเฟอร์ก่อนส่งออก ในที่สุดเราก็สามารถทำอะไรบางอย่างกับหน้าที่เกือบจะพร้อมนี้ได้ในที่สุด

ตัวอย่างเช่น เราต้องการกรองลิงก์ที่ไปยังไซต์ภายนอกทั้งหมดออก

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

วิธีการอาจไม่ได้ผลดีที่สุดแต่ได้ผล เราเขียน เปลี่ยนเส้นทาง.php พร้อมด้วยตัวกรองและบัญชีดำ และตอนนี้เราจำเป็นต้องแปลงลิงก์ทั้งหมดบนหน้าฟอรั่มนับพันหน้า การใช้ ob_start และนิพจน์ทั่วไปสองสามรายการ เราสามารถทำได้ภายในไม่กี่บรรทัด:

ฟังก์ชัน f_callback($buffer)( $buffer = preg_replace("#http://(www.)?myoldforum\.ru/#","/",$buffer); $buffer = preg_replace("#href="http ://([^"]*)"#","#href="/redirect\.php\?url=$1",$buffer); ส่งคืน $buffer) ob_start(f_callback);

ตอนนี้ โดยรวมโค้ดนี้ไว้ที่จุดเริ่มต้นของ index.php หรือไฟล์อื่นที่เซิร์ฟเวอร์เข้าถึงเมื่อดูหน้าเว็บ เราก็จะได้สิ่งที่ต้องการ

ด้วยการเปลี่ยนแปลงเนื้อหาในลักษณะนี้ เราไม่ได้ถูกจำกัดด้วยวิธีการของกลไก สิ่งนี้สามารถมีคุณค่ามาก ตัวอย่างเช่น คุณสามารถเพิ่มปลั๊กอินได้:

ฟังก์ชัน Generate_plugin() ( /*สร้างบางสิ่ง*/ ) ฟังก์ชัน f_callback($buffer)( /*...*/ $buffer = str_replace ("",generate_plugin(),$buffer); /*...*/ return $buffer; ) ob_start("f_callback");

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

ชุดเครื่องมือ PHP สำหรับการทำงานกับบัฟเฟอร์เอาท์พุตนั้นมีมากมาย และไม่จำกัดเพียง ob_start วิธีการที่อธิบายไว้ข้างต้นในบางกรณีต้องใช้ทรัพยากรมากเกินไปและยุ่งยาก เนื่องจากวิธีนี้ใช้ได้กับทั้งหน้า เราสามารถประมวลผลได้เพียงบางส่วนโดยการสร้าง wrapper ในเทมเพลตเพื่อสร้างสิ่งที่เราไม่ต้องการเข้าไปเกี่ยวข้อง แต่นั่นจำเป็นต้องได้รับการแก้ไขอย่างแน่นอน:

(สร้างสิ่งที่บ้าบอใหญ่)

คุณต้องสังเกตวลีเหล่านี้ทั้งหมดแล้ว: "ฉันไม่อยากเข้าไปยุ่ง" "เก่าแก่เหมือนเก้าอี้ไทรันโนซอรัส" "บรรณาธิการที่เขียนคดโกง"... ในโลกอุดมคติ เชลล์รอบๆ บัฟเฟอร์เอาท์พุตนั้น ไม่จำเป็น. ทุกสิ่งที่สามารถทำได้ด้วย ob_start ในทางทฤษฎีสามารถทำได้โดยไม่ต้องใช้มัน เทคนิคนี้บางครั้งทำให้เกิดความสับสนในรหัสโครงการ หลายคนเห็นความหมายของมันในการส่งเอาต์พุตไปยัง ob_gzhandler เพื่อการบีบอัดเท่านั้น และถือว่าการใช้งานในกรณีอื่น ๆ เป็นอันตราย แต่บ่อยครั้งที่คุณไม่สามารถทำได้หากไม่มีการควบคุมเอาต์พุต

โดยเฉพาะถ้าคุณไม่ต้องการที่จะขุดลึก

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

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

สตรอส

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

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

// int(3)

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

if ( $pos !== false ) ( // หากพบสตริงการค้นหา echo "พบที่ตำแหน่ง $pos" ; ) else ( echo "not found" ; )

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

คุณสามารถระบุออฟเซ็ตเพื่อเริ่มการค้นหาตามจำนวนอักขระที่ระบุจากจุดเริ่มต้นของสตริง ดังตัวอย่างต่อไปนี้:/* อาร์กิวเมนต์ strpos: * สตริงหัวเรื่อง (หรือที่เรียกว่ากองหญ้า), สตริงการค้นหา (เข็ม), ออฟเซ็ต (เป็นทางเลือก) */ // เริ่มค้นหา "need" จากอักขระ 10 ใน $str

$pos = strpos ($str , "ต้องการ" , 10 ) ;

// 20

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

strrposฟังก์ชัน strrpos ค้นหาตำแหน่งของสตริงย่อยที่เกิดขึ้นครั้งล่าสุดในสตริง: // ตัวอย่างสตริงที่ใช้สำหรับการค้นหา; $str =“เราจำเป็นต้องค้นหาเข็มในกองหญ้า”

// ค้นหาตำแหน่งของ "need" ครั้งล่าสุดใน $str

$pos = strrpos ($str , "ต้องการ" ) ;// 20

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

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

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

$pos = strrpos ($str , "เฮย์" , - 10 ) ;

//บูล(เท็จ)

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

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

strrposฟังก์ชัน strrpos ค้นหาตำแหน่งของสตริงย่อยที่เกิดขึ้นครั้งล่าสุดในสตริง: // ตัวอย่างสตริงที่ใช้สำหรับการค้นหา; แถบและแถบฟังก์ชัน strpos และ strrpos ทำการค้นหาแบบคำนึงถึงขนาดตัวพิมพ์ PHP มีฟังก์ชัน stripos และ strripos เพื่อทำการค้นหาโดยคำนึงถึงขนาดตัวพิมพ์ พวกมันทำงานเหมือนกับการเทียบเท่าแบบคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่: // ทำการค้นหา "เรา" โดยคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่$pos = stripos($str, "เรา");

// int(0)

// ทำการค้นหาแบบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่จากด้านขวาสำหรับ "Need"

$pos = strripos($str, "ต้องการ");

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

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

// ตัวอย่างสตริง $str = - // ค้นหา "the" ใน $str $newstr = strstr ($str , "the" ) ; var_dump ($ข่าว) ;

// string(27) "เข็มในกองหญ้า"ฟังก์ชัน strstr ส่งคืน "the" ตัวแรกที่พบ พร้อมกับส่วนที่เหลือของสตริงต้นฉบับ หากคุณส่งผ่าน true เป็นอาร์กิวเมนต์ที่สามไปยัง strstr ส่วนของสตริงต้นฉบับ

ก่อน

สตริงที่พบจะถูกส่งกลับ:

// ส่งค่า true เพื่อคืนค่าส่วนของ $str ก่อน "the"

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

// int(20) // ตัวอย่างสตริงที่ใช้สำหรับการค้นหา; // ค้นหา "s" จากด้านขวาใน $str$newstr = strstr ($str , "s" ) ;

var_dump ($ข่าว) ;

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

// ทดสอบด้วยอาร์กิวเมนต์ที่สองแบบหลายอักขระ