2017-08-24 43 views
0

newbee ...如何使用使preg_split(),而不是分裂()这里

我想更换分流()在一个网站的功能,所以我发现使preg_split()使用。首先要找出分裂()函数是如何工作的,所以我看了看这个例子在php.net网站:

<?php 
// Delimiters may be slash, dot, or hyphen 
$date = "04-30/1973"; 
list($month, $day, $year) = split('[/.-]', $date); 
echo "Month: $month; Day: $day; Year: $year<br />\n"; 
?> 

的产量预期: 月:04;第30天;年份:1973

所以我认为这将是容易的,只是将其更改为:

<?php 
// Delimiters may be slash, dot, or hyphen 
$date = "04-30/1973"; 
list($month, $day, $year) = preg_split('[/.-]', $date); 
echo "Month: $month; Day: $day; Year: $year<br />\n"; 
?> 

输出: 月:04-30/1973;天: ;年份:

我的想法出了什么问题?

回答

2

只需添加一些符号来定义正则表达式的开始/结束。它可以是~,例如:

$date = "04-30/1973"; 
list($month, $day, $year) = preg_split('~[/.-]~', $date); 
echo "Month: $month; Day: $day; Year: $year<br />\n"; 

更新

如果你的代码与/为正则表达式的边界,那么你必须逃离/用反斜杠:

list($month, $day, $year) = preg_split('/[\/.-]/', $date); 
+0

改变但输出仍然相同:输出:月份:04-30/1973;天: ; Year: – Maurice69

+0

Nope,https://3v4l.org/03TLO –

+0

好吧,我得到了一点,它必须是/而不是如果一个〜像**列表($ month,$ day,$ year)= preg_split(' /[.-]/',$ date); **但是现在仍然需要找到如何将/作为分割字符。 – Maurice69