При написании формы отправляйте в файл, разрывы строк и запятые - PullRequest
0 голосов
/ 01 апреля 2010

У меня есть форма с текстовой областью. Я записываю результаты в текстовый файл на сервере, но я хотел бы удалить любые разрывы строк, которые пользователь вставит в текстовую область, а также любые запятые, которые могут помешать импорту текстового файла журнала с разделителями-запятыми в Excel или что-то для дальнейшего использования.

Я думаю, что это связано с регулярным выражением, но я не эксперт и могу использовать некоторую помощь. Или, может быть, есть простая функция PHP, которая сделает это?

Ответы [ 2 ]

1 голос
/ 01 апреля 2010

Если вы собираетесь использовать только пару символов, вы можете использовать str_replace

$cleaned_textarea_data = str_replace(
    array(",", "\n"), 
    array("", " "), 
    $textarea_data
);

В противном случае, если это станет более сложным, вы можете использовать preg_replace

$cleaned_textarea_data = pregr_replace("`[,\n]`", "", $textarea_data);
0 голосов
/ 01 апреля 2010

Использование str_replace для замены пары символов на пробел должно работать; например:

$str = "This is a \nnewline, and, some, commas\nagain";
$new_str = str_replace(array("\n", "\r", ","), " ", $str);
var_dump($new_str);

Получит вас:

string 'This is a  newline  and  some  commas again' (length=43)


Возможно, вы также можете использовать strtr для этого:

$new_str = strtr($str, "\n\r,", "   ");


Но учтите, что если правильно экранировать данные в вашем CSV-файле (используя fputcsv, может быть?) , он сможет без проблем содержать символы новой строки и запятые - при по крайней мере, если программное обеспечение, используемое для чтения, соответствует стандарту .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...