Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Sockets - funkcja fgets z PHP


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
4 odpowiedzi w tym temacie

#1 SeeK

    Wszechobecny

  • Użytkownik

Reputacja: 192
Profesjonalista

  • Postów:438
Offline

Napisano 24.11.2013 19:20

Witam,

pisząc pewien plugin opierający się na zapytaniach poprzez sockety natknąłem się na pewien problem. Mianowicie chcę pobrać dane które zwraca pewien plik php umieszczony na jednej ze stron www. Dodam, iż nie mam możliwości edycji tego pliku. W PHP służy ku temu następujący kod:

$handle = fopen("http://xxx.pl/yyy.php?a=1&b=2", 'r');
$status = fgets($handle, 8);
Natomiast nie wiem za bardzo, jakie zapytanie powinienem wysłać przez sockety, aby móc pobrać te dane. Chwilowo omijam ten problem w taki sposób, iż stworzyłem u siebie na serwerze plik php, w którym wykonywany jest powyższy kod, a następnie wyświetlam zmienną $status za pomocą "echo". Plugin na serwerze za pomocą kodu:
format(sData, charsmax(sData),"GET /serwery_teksty/weryfikuj2.php HTTP/1.0^r^n")
format(sData, charsmax(sData), "%sHost: zzz.pl^r^n^r^n", sData)
socket_send(socket, sData, strlen(sData))
pobiera kod źródłowy strony i odczytuje sobie z niego potrzebne dane.
 
Aczkolwiek to jest tak trochę na około. Jak zrobić, aby plugin pobierał dane wprost z pliku: http://xxx.pl/yyy.php bez potrzeby wprowadzania dodatkowego pliku php na moim serwerze?

 


Użytkownik SeeK edytował ten post 24.11.2013 19:20

  • +
  • -
  • 0
https://sklep-sms.pl - Sklep SMS pozwala zarabiać na swoich serwerach gier opartych o silniki AMX Mod X oraz SOURCEMOD
https://nalunch.com - A Ty, gdzie pójdziesz dziś na lunch?

#2 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 24.11.2013 20:21

Skoro w oryginalnym pliku, do którego chcesz się odwoływać, nie ma wyświetlania zmiennej $status za pomocą echo, to nie wydaje mi się, żebyś mógł ją pobrać z poziomu pluginu, bo niby jak, skoro ona nie jest wyświetlana?
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#3 SeeK

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 192
Profesjonalista

  • Postów:438
Offline

Napisano 24.11.2013 20:26

Nie zrozumiałeś o co mi chodzi. Chcę użyć w pluginie takiej funkcji jaką jest fgets w PHP
  • +
  • -
  • 0
https://sklep-sms.pl - Sklep SMS pozwala zarabiać na swoich serwerach gier opartych o silniki AMX Mod X oraz SOURCEMOD
https://nalunch.com - A Ty, gdzie pójdziesz dziś na lunch?

#4 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 24.11.2013 20:31

Nie zrozumiałeś o co mi chodzi. Chcę użyć w pluginie takiej funkcji jaką jest fgets w PHP

No to chyba zrozumiałem, skoro tak. Nie wczytasz zawartości pliku php z jakiegoś tam serwera, jedynie możesz to zrobić jeśli plik znajduje się na Twoim serwerze gry, ale wtedy i tak nic nie będzie przypisywane do jakiejkolwiek zmiennej.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#5 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 25.11.2013 18:58

Poczytaj sobie o protokole PHP to wiele Ci się rozjaśni :)

 

Ale taka mała zajawka ode mnie

1. Określamy najpierw IP serwera z którym chcemy się połączyć i się z nim łączymy, to chyba już wiesz (socket connect)

2. Wysyłamy nagłówki HTTP, które określają co chcemy dokładnie uzyskać. Używamy w tym przypadku metody GET, wraz ze ścieżką, w Twoim przypadku /yyy.php?a=1&b=2 i wraz z wersją protokołu HTTP (czyli to, co masz w 1 poście, jednak trzeba ścieżkę podmienić)

3. Podajemy jakiej domeny dotyczy nasze żądanie (w tym przypadku jest to Host: xxx.pl).

4. wysyłamy dodatkowe nagłówki, jeśli jakieś potrzebne

5. wysyłamy pustą linię, co oznacza koniec nagłówków. Tutaj mogą ewentualnie pójść dane POST, jeśli została wybrana odpowiednia metoda.


GwynBleidD (25.11.2013 19:02):
Więcej np tutaj: http://webhosting.pl...waniu.naglowkow

  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych