Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dość nietypowe otwieranie pliku
Forum PHP.pl > Forum > PHP
mopsiok
Witam wszystkich, mam pewien problem dotyczący... otwierania pliku. Może zabrzmieć to nieco śmiesznie, ale piszę jak najbardziej serio. Chodzi o to, że skrypt PHP ma otworzyć plik z mojego dysku i odczytać go, bez względu na to na jakim komputerze ten skrypt zostanie uruchomiony. Kiedyś zetknąłem się z zapisywaniem pliku na dysk administratora, ale jeszcze nigdy nie widziałem żeby z jego dysku coś odczytywać. Czy jest to w ogóle możliwe? Jeśli nie, to może jest możliwość cyklicznego wrzucania na serwer nadpisanej wersji tego pliku z mojego dysku (są to logi z kanału IRC, nadpisywane praktycznie co chwilę), tak żeby można było go odczytać bezpośrednio z dysku?
Z góry dziękuję za wszelką pomoc smile.gif.

Pozdrawiam,
mopsiok

//Edit:
Sprawa się nieco uprościła. Teraz problem wygląda następująco: potrzebuję odczytać plik z mojego dysku, skrypt będzie zahostowany na serwerze ale odpalany tylko u mnie. Jak można takie coś osiągnąć?
wizu
Jeśli ma pobierać logi bez względu na serwer na jakim zostanie uruchomiony, to chyba pozostaje Ci tylko postawienie jakiegoś serwera u siebie na kompie, np FTP, lub nawet apacha, i trzymanie logów w katalogu udostępniania. Później ustawiasz sobie crona na dany skrypt, który łączy się z Twoim kompem (bibliotek do tego masz wiele, od chociażby curl-a zaczynając) i pobiera co trzeba. Dobrze by było, gdybyś miał zewnętrzne IP wink.gif
mopsiok
Zedytowałem pierwszy post, ale nie zauważyłem że ktoś odpisał biggrin.gif. Także sprawa ma się tak, że skrypt będzie odpalany z serwera ale tylko przeze mnie, nikt inny go nie będzie używać. Do tego doszedłem do wniosku, że wystarczy mi znać samą długość pliku z logami, więc mogę to zrobić po prostu tak, że po odczytaniu długości pliku z dysku nadpiszę jakiś plik na serwerze, który zawiera aktualną długość pliku. Pozostaje zatem kwestia odczytu tego logu... Bardzo mi zależy żeby to było rozwiązanie najprostsze z możliwych. Macie jakiś pomysł? wink.gif


//Edit:
No, sprawa uległa sporej zmianie. Założenia zostały uproszczone jeszcze bardziej - plik wysłać na serwer, i odczytywać z niego. Jest tylko jeden problem. Obsłużyłem wysyłanie pliku za pomocą formularza, tylko że potrzebuję to zrobić programowo. Nie będę przecież co kilka sekund wysyłać formularza...
oto kod formularza oraz skryptu:
  1. <form enctype="multipart/form-data" action="upload.php" method="POST">
  2. <input type="hidden" name="MAX_FILE_SIZE" value="500000" />
  3. <input name="ufile" type="file" />
  4. <input type="submit" value="Wyślij plik" />
  5. </form>

  1. <?php
  2. //pobranie pliku z forumularza
  3. $f = $HTTP_POST_FILES['ufile']['name'];
  4.  
  5. if($ufile != none){ //jesli plik to cokolwiek innego niz nic...
  6.  
  7. if(copy($HTTP_POST_FILES['ufile']['tmp_name'], $f)){ //jesli plik zostanie przeniesiony na serwer bezposrednio do folderu ze skryptem...
  8. echo '<span style="color: green;"><b>OK</b></span>'; //wyswietl cos na ekranie
  9. } else {
  10. echo '<span style="color: red;"><b>Jakis blad jest...</b></span>';
  11. }
  12. }
  13. ?>


Jakim sposobem wysłać plik na serwer bez ingerencji użytkownika, to jest automatycznie z poziomu PHP?
abort
A ja prowokacyjnie zapytam: czy do automatycznego przesyłanie pliku na serwer potrzebne jest aż tyle rzeczy jak Apache, php, formatki i takie inne?

Żeby nie było, że wprowadzam zamęt: jeśli to uniksy, to możesz automatycznie pobrać/wysłać dowolny plik z konsoli. Jeśli chcesz wysyłać regularnie, to polecam do tego zaprząc crona (jeśli przynajmniej jeden z serwerów to unix/linux). Mogę coś poradzić, ale muszę znać więcej rzeczy.
Czy na serwerze (tam gdzie chcesz wysyłać), stoi jakiś unix? Jeśli tak, to czy masz możliwość wrzucania tam plików i za pomocą jakich protokołów (ssh/scp/sftp, ftp)? Czy masz shella, dostęp do crona? To samo odnośnie własnego kompa...

Opisz jak najdokładniej, bo być może da się to zrobić naprawdę w zupełnie inny sposób...

@wizu: dobrze myślisz: lokalnie Apache, udostępnianie plików i na serwerze pobierać w odstępach minutowych z crona. Tylko po kiego grzyba biblioteki, curl, i do tego jeszcze czasochłonne pisanie programów? Równie dobrze z crona można uruchomić programik o nazwie 'wget', który zrobi dokładnie to, co trzeba. A czas przeznaczony na pisanie (i debugowanie) własnego skryptu przeznaczyć np. na obejrzenie filmu. Lub poprawę skryptu na serwerze smile.gif
mopsiok
Wszystko działa na Windowsie. Powiem szczerze że nie chcę się bawić w Apache, shella (którego i tak nie posiadam) czy crona, bo zależy mi na zastosowaniu zwykłego PHP - rozwiązanie ma być jak najprostsze i wymagać jak najmniej cudowania. Chociaż może to właśnie ja w tym momencie cuduję biggrin.gif. Tak się po prostu zastanawiam czy jest możliwe napisanie takiego prostego programu, który by reagował na pisanie wiadomości na IRCu. Oczywiście mam tu na myśli przekazanie informacji o tym komuś "z zewnątrz", bo gdybym miał to sprawdzić tylko u siebie to by nie było żadnego problemu, i nawet bym się za PHP nie brał (nic co programuję nigdy nie miało żadnego związku z sieciami).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.