Autor Zpráva
Parsek96
Profil *
Ahoj, prosim o radu a nasmerovani spravnym smerem. Potrebuji udelat nasledujici vec, jednoduchy formula, ve kterem bude moznost najit na disku soubor.txt, ktery posleze odeslu. A pote bych potreboval nacist jeho obsah do promene a dale s nim pracovat.

Ma druha otazka je, jakmile budu mit tento soubor ulozeny v promene, rozkouskuji jej a dle ruznych kriterii jej budu ukladat do DB, predpokladam ze pouziji nejaky cyklus, ale nevim, cim jej vlastne ohranicit? Jak poznam, ze jsem dojel na konec souboru a uz se tam nevyskytuji zadna data?

Dekuji vsem za radu!
ShiraNai7
Profil
Parsek96:
A pote bych potreboval nacist jeho obsah do promene a dale s nim pracovat.
$obsah = file_get_contents('./soubor.txt');

cim jej vlastne ohranicit? Jak poznam, ze jsem dojel na konec souboru a uz se tam nevyskytuji zadna data?
To záleží na formátu daného souboru.. třeba si jej skript "rozkouskuje" do pole a pak už snad není problém.
Parsek96
Profil *
Dekuji ti, kdyz ale soubor vkladam pres formular, tak do toho file_get_contents dam promenou z POSTu?

Format by mel byt text v jenom kuse, a kazdych presne 40 znaku bych urizl a pouzil, atd az do te doby, dokud by tam neco bylo
ShiraNai7
Profil
Parsek96:
Určitě ne přímo z postu.. musíš ji nějak ošetřit, aby nešel číst libovolný soubor.

Format by mel byt text v jenom kuse, a kazdych presne 40 znaku bych urizl a pouzil, atd az do te doby, dokud by tam neco bylo

Nějak takto. Pokud by ale data byly v UTF-8, musel bys data načítat celá - file_get_contents() - a řezat si je pomocí mb_substr().
<?php

// formular byl odeslan?
if(isset($_POST['soubor'])) {

    // sestaveni cesty k souboru
    $cesta =
        './soubory/'
        .basename($_POST['soubor'])
        .'.txt'
    ;

    // nacteni souboru
    if(is_file($cesta) && is_resource($soubor = fopen($cesta, 'r'))) {

        // zpracovani
        while(!feof($soubor)) {

            // precteme 40 bajtu
            $cast = fread($soubor, 40);

            // ulozi se do db nebo neco..
            // ke konci souboru muze byt $cast mensi nez 40 bajtu
            var_dump($cast);

        }

    } else {
        // soubor nenalezen
    }

}

?>
<form method="post">

<p>
    <strong>Název souboru:</strong>
    <input type="text" name="soubor" />.txt
    <input type="submit" />
</p>

</form>
Parsek96
Profil *
Dekuji pekne!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: