Alternatif perpecahan PHP?

92

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

igorgue
sumber

Jawaban:

131

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

Sarfraz
sumber
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.

salathe
sumber
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.

tplaner
sumber
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 :)

i. jujur
sumber
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

Andre Cotelo
sumber
1

Ya, saya akan menggunakan ledakan atau Anda dapat menggunakan:

preg_split

Yang merupakan metode yang disarankan dengan PHP 6. Preg_split Documentation

Solusi Addo
sumber
0

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

Alexandrw
sumber
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;
  }
}
?>
Ferdinand
sumber