PHP memberi tahu saya bahwa pemisahan sudah tidak digunakan lagi, metode alternatif apa yang harus saya gunakan?
Jawaban:
explodeadalah sebuah alternatif. Namun, jika Anda bermaksud untuk memisahkan melalui ekspresi reguler , alternatifnya adalah preg_split.
splitmetode ini tidak selalu menerima ekspresi reguler. Di .NET, Python, String.Split()/ str.split()metode hanya menerima string literal yang tetap sebagai jarum. Jadi, explodebenar. Bagi mereka yang datang dari Java, JavaScript, Ruby, preg_splitmungkin bisa menjadi solusinya.
splittidak digunakan lagi karena merupakan bagian dari keluarga fungsi yang menggunakan ekspresi reguler POSIX; bahwa seluruh keluarga tidak digunakan lagi karena mendukung fungsi PCRE ( preg_*).
Jika Anda tidak memerlukan fungsi ekspresi reguler, maka itu explodeadalah pilihan yang sangat baik (dan akan direkomendasikan splitbahkan jika itu tidak usang), jika di sisi lain Anda perlu menggunakan ekspresi reguler maka alternatif PCRE adalah preg_split.
preg_split jika Anda perlu memisahkan dengan ekspresi reguler. str_split jika Anda perlu membagi karakter. explode jika Anda perlu membagi dengan sesuatu yang sederhana.Juga untuk masa depan, jika Anda ingin tahu apa yang PHP ingin Anda gunakan jika ada sesuatu yang tidak digunakan lagi, Anda selalu dapat memeriksa fungsi di manual dan itu akan memberi tahu Anda alternatifnya.
Saya ingin menjelaskan di sini bahwa preg_split();jauh darinya tetapi explode();dapat digunakan dengan cara yang sama sepertisplit();
berikut adalah perbandingan antara split();dan explode();penggunaan
<?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
Inilah cara kita menggunakannya :)
Anda dapat menggunakan fungsi yang lebih mudah preg_match sebagai gantinya, Ini lebih baik dan lebih cepat daripada yang lainnya.
$var = "<tag>Get this var</tag>";
preg_match("/<tag>(.*)<\/tag>/", $var , $new_var);
echo $new_var['1'];
Keluaran: Get this var
Ya, saya akan menggunakan ledakan atau Anda dapat menggunakan:
preg_split
Yang merupakan metode yang disarankan dengan PHP 6. Preg_split Documentation
Memiliki masalah yang sama, tetapi kode saya harus berfungsi pada PHP 5 & PHP 7 ..
Ini kode saya, yang menyelesaikannya .. Masukkan tanggal dalam format dmY dengan salah satu pembatas "/. -"
<?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;
}
}
?>
explodebukan alternatifnya, karena tidak melakukan fungsi yang sama sepertisplit, yaitu: untuk memisahkan string dengan ekspresi reguler . Untuk tujuan itu, gunakanpreg_split.