Разделить строку в php с новой строкой

1

У меня проблема со строковым разделением.

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

Этот код не может разделять строку символом новой строки. Как это исправить?

  • 0
    Что такое $cfg['options']['bslist'] ? \s соответствует символу новой строки \n и \r .
  • 0
    И взрыв на <br /> был бы таким же. Или preg_replace с <br /> .
Показать ещё 4 комментария
Теги:

1 ответ

2
Лучший ответ

Символы управления \n (newline) и \r (return) совпадают с символами
&#10 и &#13 ASCII управляющие символы в HTML, который
CR (возврат каретки) и LF (линия feeed).

Но когда мы хотим проверить их в Regex (регулярное выражение), тогда они разные. В этом случае, чтобы соответствовать таковым в preg_split.

Поэтому мы могли бы заменить &#10 и &#13 пустой строкой и вместо этого использовать str_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;
?>

Некоторые ссылки:

Ещё вопросы

Сообщество Overcoder
Наверх
Меню