• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

problem z funckja filesize

Object Storage Arubacloud
0 głosów
109 wizyt
pytanie zadane 16 czerwca 2015 w PHP przez ShiroUmizake Nałogowiec (46,300 p.)

Napisałem taką oto funkcje, która ma wczytywać dane z pliku txt i odtwarzać jego zawartośc po stroni użytkownika.

Jednkaże mam problem, bo debugger twierdzi, że rozpoczęcie pobierania danych z pliku nie powiodło się. Choć flaga fopen jest ustawiona na read.

Warning: filesize(): stat failed for http://localhost/Agitta/class/text/chapter0/prolog_text_1.txt in D:\xampp\htdocs\Agitta\class\prolog.php on line 20

Przez to sam, fread rowniez sie wysypał.


Warning: fread(): Length parameter must be greater than 0 in D:\xampp\htdocs\Agitta\class\prolog.php on line 20

 

A oto kod żródłowy:

/ Prolog game- Agitta. Flag First Game = YES [TRUE]
function Prolog()
{
// name files

$name_file1 = "http://localhost/Agitta/class/text/chapter0/prolog_text_1.txt";
$name_file2 = "http://localhost/Agitta/class/text/chapter0/prolog_text_1.txt";
$name_file3 = "http://localhost/Agitta/class/text/chapter0/prolog_text_1.txt";


// Show Text


    $fp_text1 = fopen ($name_file1 , 'r');
    $fp_text2 = fopen ($name_file2 , 'r');
    $fp_text3 = fopen ($name_file3 , 'r');
        
        
        $fr_text1 = fread ($fp_text1 , filesize($name_file1) );
        $fr_text2 = fread ($fp_text1 , filesize($name_file2) );
        $fr_text3 = fread ($fp_text1 , filesize($name_file3) );
        
    

            fclose ($fp_text1);
            fclose ($fp_text2);
            fclose ($fp_text3);
        
    // Test Function
    echo "text";
    echo (n12br($fr_text1) );
    echo "<br>";
    echo (n12br($fr_text2) );
    echo "<br>";
    echo (n12br($fr_text3) );
    


    
}

Czy problem może dotyczyć flagami dostępu do pliku?
 

2 odpowiedzi

0 głosów
odpowiedź 16 czerwca 2015 przez Boshi VIP (100,240 p.)
wybrane 16 czerwca 2015 przez ShiroUmizake
 
Najlepsza
Po co zabawy w takie funkcje? chyba, że na prawdę masz jakieś  konkretne zadanie? typu odczytaj  5 bajtów z pliku.

Użyj http://php.net/manual/en/function.file-get-contents.php albo File , mała różnica między nimi, jedna zwraca tablicę z wierszami druga stringa.
komentarz 16 czerwca 2015 przez ShiroUmizake Nałogowiec (46,300 p.)
Użyje tej funkcji, dzięki!

Ale...

Użyje również tej funkcji (tą podaną) do innych również zadań.
0 głosów
odpowiedź 16 czerwca 2015 przez Comandeer Guru (601,930 p.)

Wszystkie funkcje związane z obliczaniem danych pliku działają tylko i wyłącznie w lokalnym systemie plików.

Ty natomiast podajesz adres internetowy. PHP nie obchodzi, że to localhost - protokół HTTP stawia sprawę jasno: chcesz to ciągnąć przez Sieć. I tu jest problem. Zmień to na ścieżki względne, czyli: 

$name_file1 = "text/chapter0/prolog_text_1.txt";

 

komentarz 16 czerwca 2015 przez ShiroUmizake Nałogowiec (46,300 p.)
Względnych nie łapie. Fopen twierdzi, że taki plik nie istnieje.
komentarz 16 czerwca 2015 przez Comandeer Guru (601,930 p.)

To dość dziwne, bo przecież ten plik jest pod D:\xampp\htdocs\Agitta\class\ a ze ścieżek wynika, że pliki tekstowe są pod D:\xampp\htdocs\Agitta\class\text - powinno zatem łapać

A kombinacje typu:

$name_file1 = __DIR__ . "/text/chapter0/prolog_text_1.txt";
//lub
$name_file1 = $_SERVER['DOCUMENT_ROOT'] . "/Agita/class/text/chapter0/prolog_text_1.txt";

W każdym razie po HTTP na pewno nie pójdzie, bo filesize potrzebuje lokalnego systemu plików.

Podobne pytania

0 głosów
2 odpowiedzi 732 wizyt
pytanie zadane 30 sierpnia 2016 w PHP przez Mistrz0000000 Bywalec (2,780 p.)
0 głosów
1 odpowiedź 133 wizyt
0 głosów
2 odpowiedzi 303 wizyt

92,617 zapytań

141,466 odpowiedzi

319,783 komentarzy

61,999 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...