用新行拆分php中的字符串

用新行拆分php中的字符串,php,Php,我对字符串拆分有问题 <?php $blackShopArray = preg_split("~[|!,\s\n\b]+~", $cfg['options']['bslist']); $blackShopColumn = ''; foreach($blackShopArray as $shop){ $blackShopColumn .= $shop . "<br/>"; } echo $blackShopColumn; ?

我对字符串拆分有问题

<?php
    $blackShopArray = preg_split("~[|!,\s\n\b]+~", $cfg['options']['bslist']);
    $blackShopColumn = '';
    foreach($blackShopArray as $shop){
        $blackShopColumn .= $shop . "<br/>";
    }
    echo $blackShopColumn;
?>

此代码不能用换行符拆分字符串。如何修复它?

\n
(换行符)和
\r
(返回)控制字符与
HTML中的


ASCII控制字符,即
CR
(回车)和
LF
(换行符)

但是,当我们想在
Regex
(正则表达式)中检查它们时,它们就不同了。在这种情况下,与preg_split中的匹配

因此,我们可以用空字符串替换


,并使用
stru split
代替。我很确定这可以用不同的方法来做

我的做法如下:

<?php
$cfg = "Some text will &#13;&#10;go in new line";

$cfg = str_replace("&#10;", "", $cfg);
$cfg = str_replace("&#13;", "", $cfg);
$blackShopArray = str_split($cfg);
$blackShopColumn = '';
foreach ($blackShopArray as $shop)
{
    $blackShopColumn .= $shop . "<br/>";
}
echo $blackShopColumn;
?>

一些参考资料:
  • ASCII表
  • 帮你检查你的正则表达式

什么是
$cfg['options']['bslist']
<代码>\s匹配换行符
\n
\r
。在

上的内爆将是相同的。或者
preg\u用

@pragmus替换
,你解决了吗?@AbraCadaver,我刚刚查看了我的代码页,它显示字符串被
删除了;符号而不是换行符。@maytham-ɐɥıλɐɯ,否