PHP bana bölünmenin kullanımdan kaldırıldığını söylüyor, kullanmam gereken alternatif yöntem nedir?
Yanıtlar:
explodebir alternatiftir. Ancak, normal bir ifadeye bölmek istiyorsanız , alternatif bunun preg_splityerine olur.
splityöntem her zaman normal ifadeleri kabul etmez. .NET, Python'da, String.Split()/ str.split()yöntemleri yalnızca sabit, değişmez bir dizeyi iğne olarak kabul eder. Dolayısıyla explodedoğrudur. Java, JavaScript, Ruby'den gelenler preg_splitiçin çözüm ortaya çıkabilir.
splitPOSIX normal ifadelerini kullanan işlevler ailesinin bir parçası olduğu için kullanımdan kaldırılmıştır; bu ailenin tamamı, PCRE ( preg_*) işlevlerinin lehine kullanımdan kaldırılmıştır .
Normal ifade işlevselliğine ihtiyacınız yoksa, o zaman explodeçok iyi bir seçimdir (ve splitkullanımdan kaldırılmamış olsa bile tavsiye edilirdi), diğer yandan normal ifadeleri kullanmanız gerekiyorsa, PCRE alternate basitçe olacaktır preg_split.
preg_split normal ifadelere göre bölmeniz gerekiyorsa. str_split karakterlere göre bölmeniz gerekiyorsa. explode basit bir şeyle ayrılmanız gerekirse.Ayrıca gelecekte, eğer bir şey kullanımdan kaldırılırsa PHP'nin sizden ne kullanmanızı istediğini bilmek isterseniz, her zaman kılavuzdaki işlevi kontrol edebilirsiniz ve size alternatifler söyleyecektir.
Burada ondan preg_split();uzak olanı temizlemek istiyorum, ancak explode();benzer şekilde kullanılabilirsplit();
aşağıdaki karşılaştırma split();ve explode();kullanım
<?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
İşte nasıl kullanabileceğimiz :)
Bunun yerine daha kolay olan preg_match işlevini kullanabilirsiniz, diğerlerinden daha iyi ve daha hızlıdır.
$var = "<tag>Get this var</tag>";
preg_match("/<tag>(.*)<\/tag>/", $var , $new_var);
echo $new_var['1'];
Çıktı: Get this var
Evet, patlatmak isterim ya da şunu kullanabilirsin:
preg_split
PHP 6. için önerilen yöntem hangisidir . Preg_split Documentation
Aynı sorunu yaşadım, ancak kodum hem PHP 5 hem de PHP 7'de çalışmalı ..
İşte bunu çözen kod parçam .. "/. -" sınırlayıcılardan biriyle dmY formatında bir tarih girin.
<?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;
}
}
?>
explodealternatif değildir, çünkü aynı işlevi yerine getirmezsplit, yani bir dizeyi normal bir ifadeyle bölmek . Bu amaçla kullanınpreg_split.