Foros del Web » Programando para Internet » PHP »

Conectar PHP con Python

Estas en el tema de Conectar PHP con Python en el foro de PHP en Foros del Web. Muy buenas a todos, ayer cree un nuevo tema en el que pedia ayuda para recibir datos json desde un servidor que me estaba haciendo ...
  #1 (permalink)  
Antiguo 26/08/2015, 04:23
 
Fecha de Ingreso: agosto-2015
Ubicación: Londres
Mensajes: 7
Antigüedad: 8 años, 8 meses
Puntos: 0
Exclamación Conectar PHP con Python

Muy buenas a todos, ayer cree un nuevo tema en el que pedia ayuda para recibir datos json desde un servidor que me estaba haciendo un HTTP POST, no recibi solucion alguna, pero al final encontre el problema, tengo que crear con Python un archivo que permite recibir esos datos y una vez tenga ese trocito de software en Python hacerlo correr con PHP, el coigo que tengo es el siguiente:
Código Python:
Ver original
  1. import sys
  2. import socket
  3. import json
  4.  
  5.  
  6. HOST = ''
  7. PORT = 8000
  8.  
  9. # ip = 'x.x.x.x'
  10. # port = 8080
  11.  
  12. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  13. print 'socket created'
  14. server_address = (HOST, PORT)
  15.  
  16. try:
  17.     s.bind(server_address)
  18. except socket.error as msg:
  19.     print 'Bind failed'
  20.     sys.exit()
  21.  
  22. print 'bind complete'
  23.  
  24. s.listen(10)
  25. print ' now listening'
  26.  
  27. # while 1:
  28. print 'waiting..'
  29. conn, addr = s.accept()
  30. print 'connected'
  31. while 1:
  32.     data = ""
  33.     print ("waiting....\n\r")
  34.     while (not data == "{"):
  35.         data = conn.recv(1)
  36.     got_data = "{"
  37.     while (not data == "\r"):
  38.         data = conn.recv(1)
  39.         got_data = got_data + data
  40.     decoded = json.loads(got_data)
  41. #    print (got_data)
  42.     vrm = decoded['decodes'][0]['spacedVRM']
  43.     print (vrm)

Ahora quisiera saber como recibir esta informacion con PHP para asi poder tratarla meterla en una base de datos etc, ademas tengo la duda de como hospedar este archivo en el servidor nunca antes habia trabajado con pyhton, simplemente lo alojo en la carpeta del servidor y listo?
Gracias a todos de antemano
Un saludo

EDITO:

Lo que necesito es algo parecido a lo que tengo escrito en Python pero para PHP osea seria una conexion Socket para PHP que reciba los datos

Última edición por Koreconde; 26/08/2015 a las 05:40
  #2 (permalink)  
Antiguo 26/08/2015, 07:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Conectar PHP con Python

A ver, según tu código Python abres un socket en el puerto 8000.

Pero en el tema anterior, donde dices que no te dieron solución jamás especificaste ese detalle.

http://www.forosdelweb.com/f18/como-...n-php-1135566/

¿Por qué omites información tan importante?

Eso era clave para entender, y por eso es que te frustraste y pensaste que con PHP no sería posible: equivocación tuya.

Nadie es adivino, si no explicas a detalle tu problema nadie te entenderá.

Cita:
no recibi solucion alguna, pero al final encontre el problema
Ahora en lugar de tener un problema tienes dos.

Y bueno, tu explicación del problema está errada: no estás recibiendo POST directamente, debes escuchar en un puerto especifico.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 26/08/2015, 09:03
 
Fecha de Ingreso: agosto-2015
Ubicación: Londres
Mensajes: 7
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Conectar PHP con Python

Tienes toda la razon, de hecho ese es mi problema que todavia no entiendo muy bien por donde tengo que tirar

el HTTP POST que me estan haciendo tiene que ser a una url que yo especifique con esta estructura http://x.y.x:port/document

Entonces comente que ponia como documento la pagina Dashboard.php que contiene codigo html y php para controlar el loggin,

pues ahi es donde quiero mostrar la informacion que me mandan desde esta otra pagina web, entonces si creo bien ahora lo que tengo

que crear es esa conexion socketa un puerto distinto si no le pongo ninguno en la url por defecto utiliza el 80,

la solucion al problema anterior era que ese no era el camino por donde tenia que ir de ahi que lo diera por solucionado,

siento el malentendido se me da fatal explicarme

Bueno espero que me podais echar un cable con este poco mas de informacion jeje gracias
  #4 (permalink)  
Antiguo 26/08/2015, 10:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Conectar PHP con Python

Cita:
el HTTP POST que me estan haciendo tiene que ser a una url que yo especifique con esta estructura http://x.y.x:port/document
Si tú tienes control de la URL de destino entonces es fácil, sólo debes especificar el puerto 80 (u omitirlo) para que entre directo al servidor web.

De otra forma tendrás que implementar un servicio en tu red que escuche al puerto que especifiques.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 27/08/2015, 02:56
 
Fecha de Ingreso: agosto-2015
Ubicación: Londres
Mensajes: 7
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Conectar PHP con Python

Vale hasta ahi me queda claro, pero hasta ahora habia omitido siempre el puerto y no recibo nada como parametro en mi pagina web, si me puedieras ayudar un poco mas pateketrueke lo apreciaria
Gracias
  #6 (permalink)  
Antiguo 27/08/2015, 05:09
 
Fecha de Ingreso: agosto-2015
Ubicación: Londres
Mensajes: 7
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Conectar PHP con Python

Hola a todos, tengo el codigo del socket ya en PHP pero sigo sin recibir nada:

Código PHP:
if(!($sock socket_create(AF_INETSOCK_STREAM0)))
{
    
$errorcode socket_last_error();
    
$errormsg socket_strerror($errorcode);
     
    die(
"Couldn't create socket: [$errorcode] $errormsg \n");
}
 
echo 
"Socket created \n";
 
//Connect socket to remote server
if(!socket_connect($sock '77.92.82.1' 80))
{
    
$errorcode socket_last_error();
    
$errormsg socket_strerror($errorcode);
$bind socket_bind($sock$address$port);

socket_listen($sock);
  
$client socket_accept($sock);
    
$input socket_read($client2024);
    echo 
$client;
    echo 
$input;
     
    die(
"Could not connect: [$errorcode] $errormsg \n");
}
 
echo 
"Connection established \n";
echo 
$client;
 echo 
$input;

    
// Close the master sockets
    
$close socket_close($sock);

    
var_dump($close); 
¿Que estoy haciendo mal?
  #7 (permalink)  
Antiguo 27/08/2015, 08:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Conectar PHP con Python

No, ya no hace falta escuchar el puerto 80, ¡eso ya lo hace tu servidor web!

Ahora debes hacer todo como hiciste en el otro tema que abriste, eso era lo correcto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 27/08/2015, 11:43
 
Fecha de Ingreso: agosto-2015
Ubicación: Londres
Mensajes: 7
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Conectar PHP con Python

Entonces que le paso como parametro del puerto???
He tenido que cambiar el codigo del socket, ahora tengo problema a la hora de hacer el socket bind, entonces si he entendido bien una vez que haga bien el socket en la misma pagina donde meto la conexion socket le meto ya el print_r($_POST) y me va a imprimir los datos?
siento ser tan pesado y preguntar tanto, gracias por ayudarme y la paciencia jeje Un saludo

Etiquetas: listener, python
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:58.