Несколько символов разнесения с запятой и - (дефис)
Я хочу explode
строку для всех:
- пробелы (\n\t и т.д.)
- запятая
- дефис (маленький тире). Вот так >> -
Но это не работает:
$keywords = explode("\n\t\r\a,-", "my string");
Как это сделать?
21
Author: WhatIsOpenID, 2010-09-09
2 answers
Взрыв не может этого сделать. Есть хорошая функция, которая называется preg_split
за это. Сделайте это так:
$keywords = preg_split("/[\s,-]+/", "This-sign, is why we can't have nice things");
var_dump($keywords);
Это выводит:
array
0 => string 'This' (length=4)
1 => string 'sign' (length=4)
2 => string 'is' (length=2)
3 => string 'why' (length=3)
4 => string 'we' (length=2)
5 => string 'can't' (length=5)
6 => string 'have' (length=4)
7 => string 'nice' (length=4)
8 => string 'things' (length=6)
КСТАТИ, не используйте split
, он устарел.
51
Author: shamittomar, 2010-09-09 17:35:04
... или, если вам не нравятся регулярные выражения, и вы все еще хотите взорвать материал, вы можете заменить несколько символов только одним символом перед вашим взрывом:
$keywords = explode("-", str_replace(array("\n", "\t", "\r", "\a", ",", "-"), "-",
"my string\nIt contains text.\rAnd several\ntypes of new-lines.\tAnd tabs."));
var_dump($keywords);
Это приводит к:
array(6) {
[0]=>
string(9) "my string"
[1]=>
string(17) "It contains text."
[2]=>
string(11) "And several"
[3]=>
string(12) "types of new"
[4]=>
string(6) "lines."
[5]=>
string(9) "And tabs."
}
3
Author: Florian Mertens, 2018-06-19 07:18:55