PHP는 분할이 더 이상 사용되지 않는다고 알려줍니다. 대체 방법은 무엇입니까?
답변:
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에서 모두 작동해야합니다.
이 문제를 해결 한 코드가 여기 있습니다 .. 구분 기호 "/.-"중 하나를 사용하여 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.