mam kod który zapisuje dane do pliku w ten sposób:
$text2 = trim($_POST['t'])."`".trim($_POST['f'])."`".trim($_POST['password'])."`".trim($_POST['link1'])."`".trim($_POST['link2'])."`".trim($_POST['link3']). "`" . trim($_POST['time']);
file_put_contents('Lista/' . $filename, $text2);
Tak wygląda zapisany plik:
1
1Brak
aaabbb
ccc1
Odczyt:
$cfg = file("Lista/".$filename);
foreach($cfg as $value)
{
$exp = explode("`",$value);
}
Dane link1,link2,link3 do zapisu są wczytywane z textarea na stronie.
Wszystko działa pięknie, pod warunkiem że w tych polach znajdują się pojedyncze linki (1 wiersz).
Natomiast gdy dodam ich więcej, kod zapisuje je w ten sposób:
1`1`Brak`aaa1
aaa2`bbb1
bbb2`ccc1
ccc2`1
I tu zaczyna się problem z odczytem tego pliku, ponieważ explode widzi te entery chyba i traktuje je jako osobne stringi.
Wynik var_dump w pierwszym (dobrym) przypadku:
array(1) { [0]=> string(22) "1
1Brak
aaabbb
ccc1" }
oraz w drugim (z problemem):
array(4) { [0]=> string(15) "1
1Brak
aaa1 " [1]=> string(11) "aaa2bbb1 " [2]=> string(11) "bbb2
ccc1 " [3]=> string(6) "ccc21" }
Co zrobić aby ten drugi przypadek był odczytywany tak samo jak pierwszy?
Jest to w ogóle możliwe z tymi funkcjami? Nie jestem zbyt zaawansowany w php, dlatego brak mi pomysłu jak to inaczej rozwiązać, aby efekt mnie zadowalał.
Optymalizacją kodu się nie przejmujcie. Może dało się to napisać lepiej, ale nie zależy mi na tym :D Ważne żeby działało jak chce. To i tak jest tylko do użytku własnego.