Odczyt z pliku a konkretne linie

Odpowiedz Nowy wątek
2018-08-20 11:30
0

Mam pewnien plik a w nim:

0---tytul
Imie nazwisko---data ur
imie nazwisko---data ur
imie nawisko---data ur
0---tytul 2
imie nazwisko---data ur
imie nazwisko---data ur
0---tytul 3
imie nazwisko---data ur
0---tytul 4
itd

Zrobilem przykład który ma kolorowac na bold same tytuly jesli pierwszy indeks jest rowny 0 ale nie dziala ten pierwszy. Zawsze pokazuje sie

0 tytul

i nie pogrubione a ponizej juz jest ok. Tylko z tym pierwszym cos jest nie tak.


                                                          $foo1 = file('plik.txt');

                                                                    for($i=0;$i<count($foo1);$i++){

                                                                    $exp = explode("---", $foo1[$i]);

                                                                        if(chop($exp[0]) == '0')
                                                                        {
                                                                                 print "<p><b>$exp[1]</b></p><br />";                                               
                                                                        }
                                                                        else{

                                                                              print "<p>" . $exp[0] . ' ' . $exp[1]. "</p><br />";

                                                                        }

                                                                    }

Pierwsza linia nie brana pod uwagę bo wykonuję się ona w else a w indeksie 0 jest 'zero'

Ogolnie ma sie pokazywac boldowany tytul jesli w indeksie 0 jest 'zero' a jesli nie to imie i nazwisko i data ur

edytowany 4x, ostatnio: wesoly_pogrzeb, 2018-08-20 11:36

Pozostało 580 znaków

2018-08-20 11:43
0

Już wiem co jest nie tak. Zawartośc pliku była kopiowana i częsciowo treści były usuwane co mogło spowodować błędy. Muszę to przepisać odrecznie.

Pozostało 580 znaków

2018-08-23 13:43
1

A nie chciałbyś zastosować innej struktury pliku? Json, xml, ini, yaml? Są do tego gotowe narzędzia i rozwiązania.


Pozostało 580 znaków

2018-08-23 20:13
0

@wesoly_pogrzeb też robiłem kiedyś na txt, ale zrozumiałem, że to jest bardzo niewygodne rozwiązanie, polecam Ci sqlite3. Baza w jednym pliku, db browser,

Pozostało 580 znaków

2018-08-24 14:29
0

Możesz posłuchać @CodeRZ i postawić sobie bazę sqlLite, ale to moim zdaniem jest wyciąganie armaty na komara. Proponuję Ci, to co zaproponowałem w poprzednim poście, czyli skorzystanie z gotowej struktury, wymieniłem najpopularniejsze. W php zrobisz to jedną linijką, i będzie to lepsze, szybsze i bardziej niezawodne niż to Twoje wymyślanie koła na nowo.

$dane = [
    ['name' => 'John', 'surname' => 'Doe',   'birthdate' => date("Y/m/d h:i:s")],
    ['name' => 'Jane', 'surname' => 'Smith', 'birthdate' => date("Y/m/d h:i:s")],
];

file_put_contents('moj_plik.json', json_encode($dane));

plik wygląda tak:

[{"name":"Jhon","surname":"Doe","birthdate":"2018\/08\/24 05:27:14"},{"name":"Jane","surname":"Smith","birthdate":"2018\/08\/24 05:27:14"}]

potem żeby odczytać:

$dane = json_decode(file_get_contents('moj_plik.json'), true);

$osoba1 = $dane[0];
$osoba2 = $dane[1];
echo 'Osoba to ' . $osoba1['name'] . ' ' . $osoba1['surname'] . ' urodzona ' . $osoba1['birthdate'];

Pozostało 580 znaków

2018-08-24 15:15
0

@TomRiddle: Lub...

$dane = json_decode(file_get_contents('moj_plik.json'), true);

foreach($dane as $osoba) {
echo 'Imię: ' . $osoba['name'] . '<br>Nazwisko: ' . $osoba['surname'] . ' <br>Data urodzenia: ' . $osoba['birthdate'].'<hr>';
}

Nie pomagam naPW.!.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0