回答:
explode代替です。ただし、正規表現で分割するつもりなら、代わりの方法ですpreg_split。
splitメソッドは常に正規表現を受け入れるわけではありません。.NET、Pythonでは、String.Split()/ str.split()メソッドは固定されたリテラル文字列のみを針として受け入れます。したがって、explode正しいです。Java、JavaScript、Rubyを使用preg_splitしている場合は、解決策が見つかるかもしれません。
splitPOSIX正規表現を利用する関数ファミリーの一部であるため、非推奨です。そのファミリ全体がPCRE(preg_*)関数のために廃止されました。
正規表現機能が必要ない場合explodeは、非常に良い選択肢です(split非推奨でなくても推奨されます)。一方、正規表現を使用する必要がある場合、PCREの代替は単にpreg_splitです。
ここからpreg_split();は離れていexplode();ますが、次のように使用できます。split();
以下はsplit();とexplode();使用法の比較です
<?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
これを使用する方法は次のとおりです。
同じ問題がありましたが、私のコードはPHP 5とPHP 7の両方で動作する必要があります。
これはこれを解決した私のコードです..区切り文字「/。-」の1つを使用してdmY形式で日付を入力します。
<?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;
}
}
?>
explodeません- と同じ機能を実行しないため、代替手段ではありませんsplit。つまり、正規表現で文字列を分割することです。そのためには、を使用しますpreg_split。