Penggunaan fungsi PREG_SPLIT pada PHP

PHP memberi tahu saya bahwa pemisahan sudah usang, apa metode alternatif yang harus saya gunakan?

explode adalah alternatif. Namun, jika Anda bermaksud memecah ekspresi reguler, alternatifnya adalah preg_split.

split tidak digunakan lagi karena merupakan bagian dari rangkaian fungsi yang menggunakan ekspresi reguler POSIX; bahwa seluruh keluarga tidak digunakan lagi karena fungsi PCRE (preg_*). 

Jika Anda tidak memerlukan fungsi ekspresi reguler, maka explode adalah pilihan yang sangat baik (dan akan direkomendasikan lebih dari split bahkan jika itu tidak ditinggalkan), jika di sisi lain Anda perlu menggunakan ekspresi reguler maka alternatif PCRE hanyalah preg_split .

  • preg_split jika Anda perlu membagi dengan ekspresi reguler. 
  • str_split jika Anda perlu dibagi dengan karakter. 
  • explode jika Anda perlu dibagi dengan sesuatu yang sederhana.

Juga untuk masa depan, jika Anda ingin tahu apa yang PHP ingin Anda gunakan jika ada sesuatu yang sudah ketinggalan zaman, Anda selalu dapat memeriksa function dalam manual dan itu akan memberi tahu Anda alternatif.

Saya ingin menjelaskan di sini bahwa preg_split(); jauh dari itu tetapi explode(); dapat digunakan dengan cara yang sama seperti split();

berikut ini adalah perbandingan antara penggunaan split(); dan explode();

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 () dapat 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 kami menggunakannya :)

Anda dapat menggunakan fungsi preg_match yang lebih mudah sebagai gantinya, Lebih baik dan lebih cepat dari yang lainnya.

$var = "<tag>Get this var</tag>";
preg_match("/<tag>(.*)<\/tag>/", $var , $new_var);
echo $new_var['1']; 

Output: Get this var

Ya, saya akan menggunakan meledak atau Anda dapat menggunakan:

preg_split

Yang merupakan metode yang disarankan dengan PHP 6 . preg_split Documentation

Punya masalah yang sama, tetapi kode saya harus bekerja pada keduanya PHP 5 & PHP 7 .. 

Ini adalah bagian dari kode saya, yang menyelesaikan masalah ini .. 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;
  }
}
?>

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

❮ PHP RegExp Reference

Example

Use preg_split() to split a date into its components:

<?php
$date = "1970-01-01 00:00:00";
$pattern = "/[-\s:]/";
$components = preg_split($pattern, $date);
print_r($components);
?>

Try it Yourself »


Definition and Usage

The preg_split() function breaks a string into an array using matches of a regular expression as separators.


Syntax

preg_split(pattern, string, limit, flags)

Parameter Values

ParameterDescription
pattern Required. A regular expression determining what to use as a separator
string Required. The string that is being split
limit Optional. Defaults to -1, meaning unlimited. Limits the number of elements that the returned array can have. If the limit is reached before all of the separators have been found, the rest of the string will be put into the last element of the array
flags Optional. These flags provide options to change the returned array:
  • PREG_SPLIT_NO_EMPTY - Empty strings will be removed from the returned array.
  • PREG_SPLIT_DELIM_CAPTURE - If the regular expression contains a group wrapped in parentheses, matches of this group will be included in the returned array.
  • PREG_SPLIT_OFFSET_CAPTURE - Each element in the returned array will be an array with two element, where the first element is the substring and the second element is the position of the first character of the substring in the input string.

Technical Details

Return Value:Returns an array of substrings where each item corresponds to a part of the input string separated by a match of the regular expression
PHP Version:4+

More Examples

Example

Using the PREG_SPLIT_DELIM_CAPTURE flag:

<?php
$date = "1970-01-01 00:00:00";
$pattern = "/([-\s:])/";
$components = preg_split($pattern, $date, -1,
PREG_SPLIT_DELIM_CAPTURE);
print_r($components);
?>

Try it Yourself »

Example

Using the PREG_SPLIT_OFFSET_CAPTURE flag:

<?php
$date = "1970-01-01";
$pattern = "/-/";
$components = preg_split($pattern, $date, -1,
PREG_SPLIT_OFFSET_CAPTURE);
print_r($components);
?>

Try it Yourself »


❮ PHP RegExp Reference