Còn cái này thì sao?
/**
* Like explode with multiple delimiters.
* Default delimiters are: \ | / and ,
*
* @param string $string String that thould be converted to an array.
* @param mixed $delimiters Every single char will be interpreted as an delimiter. If a delimiter with multiple chars is needed, use an Array.
* @return array. If $string is empty OR not a string, return false
*/
public static function multiExplode($string, $delimiters = '\\|/,')
{
$delimiterArray = is_array($delimiters)?$delimiters:str_split($delimiters);
$newRegex = implode('|', array_map (function($delimiter) {return preg_quote($delimiter, '/');}, $delimiterArray));
return is_string($string) && !empty($string) ? array_map('trim', preg_split('/('.$newRegex.')/', $string, -1, PREG_SPLIT_NO_EMPTY)) : false;
}
Trong trường hợp của bạn, bạn nên sử dụng một Mảng cho tham số $ delimiter. Sau đó, có thể sử dụng nhiều ký tự như một dấu phân cách.
Nếu bạn không quan tâm đến dấu cách trong kết quả của mình, bạn có thể xóa array_map('trim', [...] )
phần trong hàng trả về. (Nhưng đừng là người ngụy biện trong trường hợp này. Hãy giữ preg_split
nó trong đó.)
Phiên bản PHP bắt buộc: 5.3.0 trở lên.
Bạn có thể kiểm tra nó ở đây