2012-01-31 11 views
5

Jaka jest preferowana metoda odczytu/zapisu do gniazd TCP/IP w PHP? Istnieje wiele, wiele sposobów na to robić, w tym:Metody wejścia/wyjścia PHP Socket

  • fread() i fwrite()
  • fgets() i fputs()
  • file_get_contents() i file_put_contents()
  • stream_get_contents()
  • stream_socket_recvfrom() i stream_socket_sendto()
  • prawdopodobnie kilka innych, które Nie natknąłem się ...

Zdaję sobie sprawę, że fgets() i fputs() działać nieco inaczej (liniami zamiast dowolnych fragmentów danych), ale ja naprawdę nie rozumiem różnice w innych i która metoda będzie najlepsza dla jakich celów.

Edytuj: Również socket_recv() i socket_send().

Edytuj nr 2: Również socket_read() i socket_write().

Odpowiedz

3

W przypadku wielu z tych funkcji można określić przesunięcia i maksymalne długości, zapewniając duże nakładanie się (i pomieszanie) między nimi. Generalnie jednak są one stosowane w sposób opisany tutaj:

+0

Zanim opublikuję tutaj, zapoznałem się ze stronami podręcznika dotyczącymi wszystkich tych funkcji. Chyba szukam więcej wyjaśnień, dlaczego istnieje 5 lub więcej zestawów metod, które wszystkie mogą zrobić z grubsza te same rzeczy. Nawet funkcje, które akceptują przesunięcia/długości – FtDRbwLXw6

+3

@drrcknlsn, ponieważ o tym właśnie jest znany PHP. Zacytowanie naszego własnego PHP Jeffa Atwooda "jest jak wirtualna eksplozja w fabryce słów kluczowych i funkcji". (http://www.codinghorror.com/blog/2008/05/php-sucks-but-it-doesnt-matter.html) Istnieje mnóstwo metod, ponieważ ludzie napisali mnóstwo różnych sposobów, aby zrobić to samo. – tkone

+0

@tkone: lol, świetny artykuł. – FtDRbwLXw6