Autor | Zpráva | ||
---|---|---|---|
fofo32 Profil |
#1 · Zasláno: 1. 12. 2020, 10:30:57
Srdečne pozdravujem. Potreboval by som nejakým spôsobom poslať dáta z php formulára web stránky (internetového free hosingu) na spracovanie do PC prostredníctvom Pythona. Teda napr.: obsah tejto premennej: $_POST['Text'] na spracovanie. Následne Py môže tiež poslať nejakú informáciu na PHP server.
Ďakujem za rady. |
||
Radek9 Profil |
Málo informací. Předně se zeptám, o co se vlastně konkrétně snažíš? Možná by to šlo vymyslet jinak a lépe.
K původnímu dotazu: Kde běží to PHP a kde Python? Na stejném stroji? Na stejné síti? Úplně jinde? Má to být kontinuální socketová komunikace, nebo jednotlivé (HTTP) požadavky? |
||
fofo32 Profil |
#3 · Zasláno: 1. 12. 2020, 11:03:30
Radek9:
áno, moja chyba. Php stránka je na free serveri napr. "mojastranka.wz.cz/test/index.php" a pripojiť sa na to potrebujem teda z úplne iného PC v škole. Na PC v škole je Python program, ktorý následne ovláda nejaké zariadenie na základe prijatého príkazu zo stránky. Žiaľ v škole nie je možné vytvoriť voľný port na komunikáciu. <?php /* * Hello World server * Binds REP socket to tcp://*:5555 * Expects "Hello" from client, replies with "World" * @author Ian Barber <ian(dot)barber(at)gmail(dot)com> */ $context = new ZMQContext(1); // Socket to talk to clients $responder = new ZMQSocket($context, ZMQ::SOCKET_REP); $responder->bind("tcp://*:5555"); while (true) { // Wait for next request from client $request = $responder->recv(); printf ("Received request: [%s]n", $request); // Do some "work" sleep (1); // Send reply back to client $responder->send("World"); } Následne Python: # # Hello World client in Python # Connects REQ socket to tcp://localhost:5555 # Sends "Hello" to server, expects "World" back # import zmq context = zmq.Context() # Socket to talk to server print "Connecting to hello world server…" socket = context.socket(zmq.REQ) socket.connect("tcp://localhost:5555") # Do 10 requests, waiting each time for a response for request in range(10): print "Sending request %s …" % request socket.send("Hello") # Get the reply. message = socket.recv() print "Received reply %s [ %s ]" % (request, message) Len mám pocit, že toto je príklad pre rovnaký PC alebo aspoň rovnakú sieť a potreboval by som to upraviť tak, aby sa ten klient vedel pripojiť aj mimo tej siete. Ďakujem veľmi pekne za čas :) |
||
Radek9 Profil |
fofo32:
Mělo by technicky vzato stačit v Pythonu nahradit localhost za tu URL (mojastranka.wz.cz). Problém ovšem je, že hromada freehostingů (a klidně i placených hostingů) ti nedovolí spustit vlastní PHP proces pro socketovou komunikaci a využívat libovolný port. V tu chvíli bys byl odkázaný pouze na HTTP požadavky. Jinými slovy by se ten tvůj Python script musel aktivně (např. v intervalu) dotazovat na server, zda pro něj nemá něco nového. |
||
fofo32 Profil |
#5 · Zasláno: 3. 12. 2020, 22:38:04
Radek9:
Ďakujem veľmi pekne za rady. :-) |
||
Časová prodleva: 3 roky
|
0