Autor Zpráva
fofo32
Profil
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
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
Radek9:
Ďakujem veľmi pekne za rady. :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0