Witam,
Potrzebuje pomocy z zamianą przecinków w fragmecie, tekstu tylko w " "[cudzysłów] na ciąg np. 6x3^ . Wymyśliłem coś takiego, ale to się sprawdza tylko z jednym takim ciągiem w " ". Jednak ich może być nieokreśliona ilość. Może jest jakaś funkcja która mogłaby to uprościć?
Kod
$line = trim(fgets($file,4096));
if(list($part1,$part2,$part3) = explode('"',$line))
{
$part2 = str_replace(',', ' 6x3^ ', $part2);
$line= $part1.$part2.$part3;
}


Chodzi mi o to aby:
$line = "Jedzie pociąg z daleka, na nikogo nie czeka. \"Szłem drogom, kwiaty pachły, wiater wiał, ona mnie odepchła, wienc weszlem do domu, trzasłem dzwiami, pierdłem, żygłem i wyszłem, bo hamstwa nie zniese.\" Ala ma kota, a kot ma Ale.";

Chodzi mi o to aby echo $line zwróciło:

Jedzie pociąg z daleka, na nikogo nie czeka. \"Szłem drogom 6x3^ kwiaty pachły 6x3^ wiater wiał 6x3^ ona mnie odepchła 6x3^ wienc weszlem do domu 6x3^ trzasłem dzwiami 6x3^ pierdłem 6x3^ żygłem i wyszłem 6x3^ bo hamstwa nie zniese.\" Ala ma kota, a kot ma Ale.";

Dobra napisze w sumie o co mi chodzi.
Jest ustalona ilość ',' [przecinków], np. 20. i chce ładować ciągi znaków między nimi do tablicy, albo zmiennych, ale tak aby te w " " były ładowane do jednej. Podam przyklad dla sprostowania.
ciąg znaków:
Kod
1,2,3,4,5,6,7,8,9,"10,1",11,12,"13,4,5,6",14,15,16,17,18,19,20
no więc:
Kod
$a[1] = "1";
$a[2] = "2";
$a[3] = "3";
$a[4] = "4";
$a[5] = "5";
$a[6] = "6";
$a[7] = "7";
$a[8] = "8";
$a[9] = "9";
$a[10] = "10,1";
$a[11] = "11";
$a[12] = "12";
$a[13] = "13,4,5,6";
$a[14] = "14";
$a[15] = "15";
$a[16] = "16";
$a[17] = "17";
$a[18] = "18";
$a[19] = "19";
$a[20] = "20";
Normalnie to były by liczby znaki, wszystko oprócz " w tekście. No i dla sprostowania to nie wiem ile "" bedzie w jednej lini, ani gdzie bedą, wiem tylko ile bedzie w sumie zmiennych w lini.
Mój dotychczasowy kod wygląda następująco:

Kod
while(! feof($file))
{
$line = trim(fgets($file,4096));
if(list($part1,$part2,$part3) = explode('"',$line))
{
$part2 = str_replace(',', ' 6x3^ ', $part2);
$line= $part1.$part2.$part3;
}

list($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k) = explode(',',$line);
$remarks = str_replace(' 6x3^ ', ',', $remarks);


Na zwycięzce czeka :

biggrin.gif
------------------------------------------------------------------------------------
Piwo jako nagrode przesylam do pierwszego kto sie zgłosi... no bo znalazłem to co chcialem... oczywiście w googlach tongue.gif moze sie komuś przyda to umieszczam to u siebie na serwie i podaje link: Csv Importer Jest to importer plików .csv do MySQLa biggrin.gif
Jednak nagroda - piwo zostaje, mam 3 do rozdania tongue.gif Pierwsze 3 maile wygrywają tongue.gif