Bir formu yazarken bir dosya, şerit satır sonları ve virgül teslim

2 Cevap php

Ben de bir textarea ile bir form var. Ben sunucu üzerinde bir metin dosyasına sonuçları giriş, ama ben herhangi bir satır, bir kullanıcı textarea vereceğini tatili dışarı şerit istiyorum, hem de Excel'e virgülle ayrılmış günlük metin dosyası veya müdahale edecek herhangi bir virgül olur daha sonra kullanmak için bir şey.

Ben bu regex ile ilgisi olduğunu düşünüyorum, ama ben hiçbir uzman değilim ve biraz yardım kullanabilirsiniz. Ya da belki bunu yapacak kolay bir PHP fonksiyonu var?

2 Cevap

Eğer sadece birkaç karakter yapıyor olacak ediyorsanız, str_replace kullanabilirsiniz

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

Daha karmaşık alır Aksi takdirde, kullanabilirsiniz preg_replace

$cleaned_textarea_data = pregr_replace("`[,\n]`", "", $textarea_data);

str_replace , bir boşluk, birkaç karakter değiştirmek çalışmalıdır kullanma; örneğin:

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

Alacak:

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


You could probably also use strtr for that :

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


But note that, if escaping the data properly in your CSV file (using fputcsv, maybe ?), it should be able to contain newlines and commas without any problem -- at least if the software used to read it is respecting the standard too.