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;
}
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. $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";
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);
{
$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 :


------------------------------------------------------------------------------------
Piwo jako nagrode przesylam do pierwszego kto sie zgłosi... no bo znalazłem to co chcialem... oczywiście w googlach


Jednak nagroda - piwo zostaje, mam 3 do rozdania

