У меня проблема со строковым разделением.
<?php
$blackShopArray = preg_split("~[|!,\s\n\b]+~", $cfg['options']['bslist']);
$blackShopColumn = '';
foreach($blackShopArray as $shop){
$blackShopColumn .= $shop . "<br/>";
}
echo $blackShopColumn;
?>
Этот код не может разделять строку символом новой строки. Как это исправить?
Символы управления \n
(newline) и \r
(return) совпадают с символами 

и 
ASCII управляющие символы в HTML, который CR
(возврат каретки) и LF
(линия feeed).
Но когда мы хотим проверить их в Regex
(регулярное выражение), тогда они разные. В этом случае, чтобы соответствовать таковым в preg_split.
Поэтому мы могли бы заменить 

и 
пустой строкой и вместо этого использовать str_split
. Я уверен, что это можно сделать разными способами.
Вот мой подход:
<?php
$cfg = "Some text will go in new line";
$cfg = str_replace(" ", "", $cfg);
$cfg = str_replace(" ", "", $cfg);
$blackShopArray = str_split($cfg);
$blackShopColumn = '';
foreach ($blackShopArray as $shop)
{
$blackShopColumn .= $shop . "<br/>";
}
echo $blackShopColumn;
?>
$cfg['options']['bslist']
?\s
соответствует символу новой строки\n
и\r
.<br />
был бы таким же. Илиpreg_replace
с<br />
.