Výsledky 1 až 10 z 10

Téma: PHP:jak nacitat vzdalene soubory az do konce

  1. #1
    Senior Member
    Založen
    09.10.2002
    Bydliště
    Praha
    Příspěvky
    1 404
    Vliv
    298

    Standardní PHP:jak nacitat vzdalene soubory az do konce

    zdravim.. oteviram vzdaleny soubor pomoci fopen..

    <?
    $league="$league[0]. Liga - Skupina $league[1]";
    $fp=fopen("http://www.psmf.cz/souteze/hl/hl_tabulka_ascii.txt","r");
    $text=fread($fp,30000);
    fclose($fp);

    .. filesize nelze pouzivat na vzdalene soubory, takze pouzivam fixni velikost souboru 30000b. soubor ma +- vzdy 28000b. ale pokud ho nactu do skriptu a dal s nim pracuji, zjistim, ze se nacetlo treba jen 10, 15kb z celkove velikosti. jak mam nacitat soubor cely, resp. pouzit jinou metodu? jakou? (fsockopen je zakazanej, to je snad jediny)

  2. #2
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    298

    Standardní

    1) co vraci v pripade ze nasel EOF? Pokud neco jako false, tak zkus tohle:

    While $text = fread(...)
    {
    $out .= $text;
    }

    2) (tohle si nejsem jistej, jestli pomuze, ale pokud se pamatuju, na lokalnich souborech jsem mel podobnej prblem, a vyresil jsem ho takhle)
    fread by melo byt binarne bezpecne cteni ze souboru, ale oteviras ho binarne? Tj. "rb" misto "r" jako druhy parametr fopen()? - kdyz takhle otevres i textovej soubor, nic tim nezkazis..
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  3. #3

    Standardní

    skus fpassthru() (alebo tak nejako sa to pise...nemam tu PHP manual....cita file od zaciatku po riadkoch do konca)

  4. #4
    Senior Member
    Založen
    09.10.2002
    Bydliště
    Praha
    Příspěvky
    1 404
    Vliv
    298

    Standardní

    jeste prolezu manual. fsockopen otevira soubory a tvari se jako prohlizec, coz je nej nej nej.. ale i fopen by mel stacit.. zkusim to rb, fpassthru je podle me blbost, to ten soubor vypise celej na obrazovku, ne? mrknu jeste do manualu. ja potrebuju s datama z toho souboru dale pracovat. jo, je to txt soubor s databazi oddelovanou zalomenim, tabulatorama a podobne, to neni problem. jeste jsem si vzpomnel, ze se dalo pomoci nejake fce a while nacitat a zpracovavat po urcitem poctu bytu (default 4096), taky se po tom jeste podivam.

    kazdopadne mi ten skript nenacte vsechno, at jsem na lokalu, kde je dobry pripojeni, nebo na webzdarma. vyhodi to to samy..

    pro podrobnosti MRK sem: http://jey.wz.cz/data/fopen - tam je soubor jak ma byt a jak se nacita pomoci fopen. ted jsem zjistil, ze se nacte pokazde stejne bajtu a konec.. divny..

  5. #5

    Standardní

    a co příkaz file() ? ten načítá řádek po řádku, jen otázka zda funguje i na nelokální soubory...
    C2D Wolfheart stabilized...CoolingSys completed...Aurora 3D Black...full 120mm Wolfheart
    WinXP && Gentoo Powered Wolfheart http://img215.imageshack.us/my.php?i...pgentooqt2.jpg
    Intel Core2Duo E6300 1.86@3.2GHz cooled by Ninja Plus| Gigabyte DS4 | 1024MB Kingston 750@920MHz | sound | Gigabyte X1650Pro SilentPipe II | TEAC 40x & Toshiba DVD-RW | WD800JB 80GB | Logitech MX510 | Fortron 300W NP(PN) | MS Sidewinder Strategic Commander|Acer 1721hm
    C366 2@1,85V 32MB RAM, Slackware 9.1 router connected to Chello

  6. #6
    Senior Member
    Založen
    09.10.2002
    Bydliště
    Praha
    Příspěvky
    1 404
    Vliv
    298

    Standardní

    super, nasel jsem reseni !!!

    <?
    $file=fopen("http://www.psmf.cz/souteze/hl/hl_tabulka_ascii.txt","r");
    if (!$file) {
    echo "

    Nelze otevřít vzdálený soubor.\r\n";
    exit;
    }
    while (!feof ($file)) {
    $line=fgets($file,1024);
    $output=$output.$line;
    }
    fclose($file);
    echo $output;
    ?>

    priklad na http://jey.wz.cz/data/fopen/result2.php

  7. #7
    Senior Member
    Založen
    09.10.2002
    Bydliště
    Praha
    Příspěvky
    1 404
    Vliv
    298

    Standardní

    respektive: upravena verze.. je to kapitola 20 v manuala - vzdalena spojeni tusim, mozna prace se vzdalenymi soubory.

    <?
    $file=fopen("http://www.psmf.cz/souteze/hl/hl_tabulka_ascii.txt","r");
    while (!feof($file)) {
    $text.=fgets($file,1024);
    }
    fclose($file);
    echo $text;
    ?>

    kazdopadne tohle nacita po 1024 bytech, nez je EOF(konec souboru) a vopravdu to nacte.. tohle jenom pro priklad vyhazuje nacitany data echem.. normalne se s tim pak pracuje jeste dal..

  8. #8
    Senior Member
    Založen
    09.10.2002
    Bydliště
    Praha
    Příspěvky
    1 404
    Vliv
    298

    Standardní

    no, na vypisovani po X bajtech to jde.. ale kdyz to tak chci nacist a dal s tim pracovat, vubec to nefacha. vzor kodu:

    <?
    $file=fopen("http://www.psmf.cz/souteze/hl/hl_tabulka_ascii.txt","r");
    while (!feof($file)) {
    $text.=fgets($file,30000);
    }
    fclose($file);
    $text=str_replace("/",":",$text);
    $data1=explode($league,$text);
    $data2=explode("\r\n",$data1[1]);
    echo "$league
    \r\n";
    echo "<table cellspacing=\"1\" cellpadding=\"1\" border=\"0\">\r\n";
    for ($i=0;$i<=12;$i++) {
    $data3=explode("\t",$data2[$i]);
    echo "<td width=\"20\" align=\"right\" valign=\"top\" class=\"maintext\">$data3[1]</td>\r\n<td width=\"250\" align=\"left\" valign=\"top\" class=\"maintext\">$data3[2]</td>\r\n<td width=\"20\" align=\"left\" valign=\"top\" class=\"maintext\">$data3[3]</td>\r\n<td width=\"20\" align=\"left\" valign=\"top\" class=\"maintext\">$data3[4]</td>\r\n<td width=\"20\" align=\"left\" valign=\"top\" class=\"maintext\">$data3[5]</td>\r\n<td width=\"20\" align=\"left\" valign=\"top\" class=\"maintext\">$data3[6]</td>\r\n<td width=\"40\" align=\"left\" valign=\"top\" class=\"maintext\">$data3[7]</td>\r\n<td width=\"20\" align=\"left\" valign=\"top\" class=\"maintext\">$data3[8]</td>\r\n</tr>\r\n";
    }
    echo "</table>\r\n";
    echo $text;
    ?>

    takze skript nevyhodi ani ň, ale jen prazdnou tabulku, kdezto nakonci echo $text vyhodiu cely text.. grrr.
    prosim poradte..

  9. #9

    Standardní

    Citace Původně odeslal Jey
    no, na vypisovani po X bajtech to jde.. ale kdyz to tak chci nacist a dal s tim pracovat, vubec to nefacha. vzor kodu:

    <?
    $file=fopen("http://www.psmf.cz/souteze/hl/hl_tabulka_ascii.txt","r");
    while (!feof($file)) {
    $text.=fgets($file,30000);
    }
    fclose($file);
    $text=str_replace("/",":",$text);
    $data1=explode($league,$text);
    $data2=explode("\r\n",$data1[1]);
    echo "$league
    \r\n";
    echo "<table cellspacing=\"1\" cellpadding=\"1\" border=\"0\">\r\n";
    for ($i=0;$i<=12;$i++) {
    $data3=explode("\t",$data2[$i]);
    echo "<td width=\"20\" align=\"right\" valign=\"top\" class=\"maintext\">$data3[1]</td>\r\n<td width=\"250\" align=\"left\" valign=\"top\" class=\"maintext\">$data3[2]</td>\r\n<td width=\"20\" align=\"left\" valign=\"top\" class=\"maintext\">$data3[3]</td>\r\n<td width=\"20\" align=\"left\" valign=\"top\" class=\"maintext\">$data3[4]</td>\r\n<td width=\"20\" align=\"left\" valign=\"top\" class=\"maintext\">$data3[5]</td>\r\n<td width=\"20\" align=\"left\" valign=\"top\" class=\"maintext\">$data3[6]</td>\r\n<td width=\"40\" align=\"left\" valign=\"top\" class=\"maintext\">$data3[7]</td>\r\n<td width=\"20\" align=\"left\" valign=\"top\" class=\"maintext\">$data3[8]</td>\r\n</tr>\r\n";
    }
    echo "</table>\r\n";
    echo $text;
    ?>

    takze skript nevyhodi ani ň, ale jen prazdnou tabulku, kdezto nakonci echo $text vyhodiu cely text.. grrr.
    prosim poradte..
    jestli wyhodí text (předpokládám tak jak ho načte), tak pak bych zkontrolowal obsah proměnných $data...jinak docela drsně psaný kód...
    C2D Wolfheart stabilized...CoolingSys completed...Aurora 3D Black...full 120mm Wolfheart
    WinXP && Gentoo Powered Wolfheart http://img215.imageshack.us/my.php?i...pgentooqt2.jpg
    Intel Core2Duo E6300 1.86@3.2GHz cooled by Ninja Plus| Gigabyte DS4 | 1024MB Kingston 750@920MHz | sound | Gigabyte X1650Pro SilentPipe II | TEAC 40x & Toshiba DVD-RW | WD800JB 80GB | Logitech MX510 | Fortron 300W NP(PN) | MS Sidewinder Strategic Commander|Acer 1721hm
    C366 2@1,85V 32MB RAM, Slackware 9.1 router connected to Chello

  10. #10
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    298

    Standardní

    Teda jestli jsem to dobre pochopil, a jsou to data v csv, tak je 1) explodni podle \n;
    2) urizni pripadny \r
    3) jednotlivy polozky explodni podle ";".

    A mas to. Jestli to neni csv, tak nevim. Kdyz vidim ten tvuj kod, fakt se mi oci brani to cist..
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •