Alternatif perpecahan PHP?


92

PHP memberi tahu saya bahwa pemisahan sudah tidak digunakan lagi, metode alternatif apa yang harus saya gunakan?

Jawaban:


131

explodeadalah sebuah alternatif. Namun, jika Anda bermaksud untuk memisahkan melalui ekspresi reguler , alternatifnya adalah preg_split.


15
Saya tidak setuju - explodebukan alternatifnya, karena tidak melakukan fungsi yang sama seperti split, yaitu: untuk memisahkan string dengan ekspresi reguler . Untuk tujuan itu, gunakan preg_split.
nickf

1
@ nickf: Itu benar, saya seharusnya menambahkan itu pada awalnya. Terima kasih
Sarfraz

Dalam berbagai bahasa, 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.
Wiktor Stribiżew

Ini kompatibel dengan Visual Basic .NET's String.Split (). Nice
Md Ashraful Islam

22

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.


16
  • 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.


7

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

Bagaimana split () digunakan

<?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

Bagaimana explode () bisa digunakan

<?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 :)


2

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



0

Jika Anda ingin membagi string menjadi kata-kata, Anda dapat menggunakan explode () atau str_word_count ().


0

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;
  }
}
?>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.