函数split()已弃用,preg_split():找不到结束分隔符','

hap*_*uty 7 php split delimiter preg-split

我有一个10年前编写的PHP脚本.现在我们将脚本移动到新服务器并且它无法正常工作.有问题的行是:

$p_industry = split(',', $member['p_industry']);
Run Code Online (Sandbox Code Playgroud)

测试电子邮件收到此错误消息:

函数split()已弃用.

我研究了这个网站,然后我用脚本替换了脚本

$p_industry = preg_split(',', $member['p_industry']);
Run Code Online (Sandbox Code Playgroud)

然后测试电子邮件收到以下不同的错误消息:

preg_split():找不到结束分隔符','

当我将脚本更改为

$p_industry = explode(',', $member['p_industry']);
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误消息的电子邮件.但剧本似乎也无效.它似乎没有工作,甚至没有发送错误消息测试电子邮件.

我该怎么改变剧本?你能给我具体的答案吗?

pan*_*her 12

Preg_*函数必须在模式周围有分隔符.我用~.

$p_industry = preg_split('~,~', $member['p_industry']);
Run Code Online (Sandbox Code Playgroud)

  • ‘~’在这里做什么?你能解释一下吗? (2认同)
  • @Dev:`preg_*`函数在模式周围有分隔符。这就是这个问题的主要任务。https://www.php.net/manual/en/regexp.reference.delimiters.php。或者参见 https://regex101.com,正则表达式输入,也有完整的语法... `DELIM--regex--DELIM--FLAGS`,例如。`~regex~i` 或 `#regex#m` 等。 (2认同)