PHP Split Alternative?


92

PHP sagt mir, dass Split veraltet ist. Welche alternative Methode sollte ich verwenden?

Antworten:


131

explodeist eine Alternative. Wenn Sie jedoch einen regulären Ausdruck aufteilen möchten , ist die Alternative preg_splitstattdessen.


15
Ich bin anderer Meinung - explodeist nicht die Alternative, da es nicht die gleiche Funktion ausführt wie split: einen String durch einen regulären Ausdruck zu teilen . Verwenden Sie zu diesem Zweck preg_split.
Nickf

1
@nickf: Das ist richtig richtig, ich hätte das anfangs hinzufügen sollen. Danke
Sarfraz

In verschiedenen Sprachen splitakzeptiert die Methode nicht immer reguläre Ausdrücke. In .NET, Python, akzeptieren die String.Split()/ str.split()-Methoden nur eine feste Literalzeichenfolge als Nadel. Somit explodeist richtig. Für diejenigen, die aus Java kommen, könnte JavaScript, Ruby, preg_splitdie Lösung sein.
Wiktor Stribiżew

Es ist kompatibel mit String.Split () von Visual Basic .NET. Nizza
Md Ashraful Islam

22

splitist veraltet, da es Teil der Funktionsfamilie ist, die reguläre POSIX-Ausdrücke verwendet. Diese ganze Familie wird zugunsten der PCRE ( preg_*) - Funktionen abgelehnt .

Wenn Sie die Funktionalität für reguläre Ausdrücke nicht benötigen, explodeist dies eine sehr gute Wahl (und wäre empfohlen worden, splitselbst wenn dies nicht veraltet wäre). Wenn Sie andererseits reguläre Ausdrücke verwenden müssen, ist die PCRE-Alternative einfach preg_split.


16
  • preg_split wenn Sie durch reguläre Ausdrücke teilen müssen.
  • str_split wenn Sie nach Zeichen teilen müssen.
  • explode wenn Sie durch etwas Einfaches trennen müssen.

Auch für die Zukunft können Sie, wenn Sie jemals wissen möchten, was PHP verwenden soll, wenn etwas veraltet ist, die Funktion im Handbuch jederzeit überprüfen und Ihnen Alternativen aufzeigen.


7

Ich möchte hier klarstellen, dass dies preg_split();weit davon entfernt explode();ist, aber auf ähnliche Weise wie verwendet werden kannsplit();

Es folgt der Vergleich zwischen split();und explode();Verwendung

Wie wurde split () verwendet?

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

Wie explode () verwendet werden kann

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

Hier ist, wie wir es verwenden können :)


2

Sie können stattdessen die einfachere Funktion preg_match verwenden. Sie ist besser und schneller als alle anderen.

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

Ausgabe: Get this var



0

Wenn Sie eine Zeichenfolge in Wörter aufteilen möchten, können Sie explode () oder str_word_count () verwenden.


0

Hatte das gleiche Problem, aber mein Code muss sowohl auf PHP 5 als auch auf PHP 7 funktionieren.

Hier ist mein Code, der dieses Problem gelöst hat. Geben Sie ein Datum im dmY-Format mit einem der Trennzeichen "/. -" ein.

<?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;
  }
}
?>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.