Autor Zpráva
zedna
Profil *
Potřebuji načíst txt soubor ale tak aby čtení začlo až od xtého řádku (vynechat např. prvních 20 řádků)

mám přeskočení x znaků, což mi mimochodem taky moc nefunguje ale hlavní jsou ty řádky, protože znaky zas tak neovlivním

if (File_Exists ("data.txt")):                             
$fp = FOpen ("data.txt", "r");                         
$data = fgets($fp, 100); 
 //echo ftell($fp);           
$text = FRead ($fp, FileSize ("data.txt")); 
FClose ($fp); 
endif;


poradíte jak přeskočit řádky?

nemůžu použít funkci file_put_contents apod, protože jsem na firmením PHP4 a na upgrade nemám čas
ShiraNai7
Profil
Mam soubor test.txt a v nem:
Jedna
Dva
Tri
Ctyri
Pet
Sest
Sedm
Osm
Devet
Deset


A skript:
$i = 0;
$skip = 5;
$file = fopen('./test.txt', 'r');
while($line = fgets($file, 512)) {
    ++$i;
    if($i > $skip) echo $i.': '.$line;
}


A vypise to:
6: Sest
7: Sedm
8: Osm
9: Devet
10: Deset


Prvnich 5 radku je tedy preskoceno (tj hodnoty Jedna, Dva, Tri, Ctyri a Pet).
blaaablaaa
Profil
zedna:
$data = file("data.txt");
//smazes prvnich 20radku
for ( $i=0; $i<20;$i++ ) {
 unset($data[$i]);
}
//nebo vypises od dvacateho
$cnt = count($data);
for ( $i=20; $i<$cnt;$i++ ) {
echo $data[$i]."\n";
}

+ osetreni, kdyz soubor neexistuje, kdyz nema pozadovany pcoet radku apod.
ShiraNai7
Profil
blaaablaaa:
Zbytecne 2 cykly :) Jde to v jednom co jsem napsal a nemusis nic osetrovat (snad krome existence, ale to uz jde mimo diskusi).

edit- jde to jeste jednoduseji:

$radky = array_slice(file('test.txt'), 5);
print_r($radky);


Vypise:
Array
(
    [0] => Sest

    [1] => Sedm

    [2] => Osm

    [3] => Devet

    [4] => Deset
)
blaaablaaa
Profil
ShiraNai7:
Je to vzdyt jen jeden cyklus, dve moznosti ;) Podle toho, co s daty chce delat.
ShiraNai7
Profil
blaaablaaa:
Viz moje bez cyklu :)
zedna
Profil
dobrá díky jdu to hned vyzkoušet, btw. napadá vás řešení jak začít načítat text ze souboru až od určitého slova? např když mám Obsah, tak se začne vypisovat text až od prvního výskytu toho slova

blaaablaaa:
Podle toho, co s daty chce delat.

ty data vypisuji a ukladam do databaze pocet jejich vyskytu pomoci array ale tohle musim udelat jeste predtim
zedna
Profil
super tak to funguje líp než jsem čekal, vypisuje to i prázdné řádky, což byl účel, díky moc
teď ještě vyhledat slovo a přidat druhou podmínku po nalezení slova. co třeba

$hledam   = 'slovo';
$pos = strpos($text, $hledam);

// Note our use of ===.  Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
if ($pos === false) {
    echo "The string '$hledam' was not found in the string '$text'";
} else {
    echo "The string '$hledam' was found in the string <b>'$text'</b>";
    echo " and exists at position <u>$pos</u>";
}

$pozice_slova = fgets($fp, $pos);

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0