PHP กำลังบอกฉันว่าการแยกเลิกใช้แล้วฉันควรใช้วิธีอื่นอย่างไร
PHP กำลังบอกฉันว่าการแยกเลิกใช้แล้วฉันควรใช้วิธีอื่นอย่างไร
คำตอบ:
explode
เป็นอีกทางเลือกหนึ่ง อย่างไรก็ตามหากคุณต้องการแยกนิพจน์ทั่วไปทางเลือกคือpreg_split
แทน
split
เมธอดไม่ยอมรับนิพจน์ทั่วไปเสมอไป ใน. NET, Python, String.Split()
/ str.split()
method ยอมรับเฉพาะสตริงคงที่และเป็นตัวอักษรเป็นเข็ม ดังนั้นจึงexplode
ถูกต้อง สำหรับผู้ที่มาจาก Java, JavaScript, Ruby preg_split
อาจเป็นวิธีแก้ปัญหา
split
เลิกใช้งานเนื่องจากเป็นส่วนหนึ่งของตระกูลฟังก์ชันที่ใช้นิพจน์ทั่วไป POSIX ทั้งครอบครัวเลิกใช้งานpreg_*
ฟังก์ชันPCRE ( )
หากคุณไม่จำเป็นต้องมีฟังก์ชั่นการแสดงออกปกติแล้วexplode
เป็นทางเลือกที่ดีมาก (และจะได้รับการแนะนำมากกว่าsplit
แม้ว่าที่ไม่ได้ถูกเลิกใช้แล้ว) ถ้าในมืออื่น ๆ ที่คุณทำจำเป็นต้องใช้การแสดงออกปกติแล้วสลับ PCRE preg_split
เป็นเพียง
preg_split
หากคุณต้องการแยกตามนิพจน์ทั่วไป str_split
หากคุณต้องการแยกตามอักขระ explode
หากคุณต้องการแยกสิ่งที่เรียบง่ายนอกจากนี้ในอนาคตหากคุณต้องการทราบว่า PHP ต้องการให้คุณใช้อะไรหากมีการเลิกใช้งานคุณสามารถตรวจสอบฟังก์ชันในคู่มือได้ตลอดเวลาและจะบอกทางเลือกอื่นให้คุณ
ฉันต้องการเคลียร์ตรงนี้ซึ่งpreg_split();
อยู่ห่างไกลออกไป แต่explode();
สามารถใช้ในลักษณะเดียวกับsplit();
ต่อไปนี้เป็นการเปรียบเทียบระหว่างsplit();
และexplode();
การใช้งาน
<?php
$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo $month; // foo
echo $day; // *
echo $year;
?>
URL: http://php.net/manual/en/function.split.php
<?php
$data = "04/30/1973";
list($month, $day, $year) = explode("/", $data);
echo $month; // foo
echo $day; // *
echo $year;
?>
URL: http://php.net/manual/en/function.explode.php
นี่คือวิธีที่เราสามารถใช้ได้ :)
คุณสามารถใช้ฟังก์ชันที่ง่ายกว่า preg_match แทนได้ดีกว่าและเร็วกว่าฟังก์ชันอื่น ๆ ทั้งหมด
$var = "<tag>Get this var</tag>";
preg_match("/<tag>(.*)<\/tag>/", $var , $new_var);
echo $new_var['1'];
เอาท์พุต: Get this var
หากคุณต้องการแยกสตริงออกเป็นคำคุณสามารถใช้ Explode () หรือ str_word_count ()
มีปัญหาเดียวกัน แต่โค้ดของฉันต้องทำงานได้ทั้ง PHP 5 และ PHP 7 ..
นี่คือโค้ดส่วนหนึ่งของฉันซึ่งแก้ไขปัญหานี้ .. ป้อนวันที่ในรูปแบบ dmY ด้วยตัวคั่น "/. -"
<?php
function DateToEN($date){
if ($date!=""){
list($d, $m, $y) = function_exists("split") ? split("[/.-]", $date) : preg_split("/[\/\.\-]+/", $date);
return $y."-".$m."-".$d;
}else{
return false;
}
}
?>
explode
ไม่ได้เป็นทางเลือกเพราะมันไม่ได้ดำเนินการการทำงานเช่นเดียวsplit
นั่นคือ: การแยกสตริงโดยการแสดงออกปกติ เพื่อจุดประสงค์นั้นให้ใช้preg_split
.