Inicio > PHP > Conectar a una Pagina Remota con PHP

Conectar a una Pagina Remota con PHP

Muchas veces queremos incluir datos o cosas de webs remotas, Para eso se usan los Socket para efectuar conexiones a servidores.

Escribi esta Clase en PHP que puede ser usada para conectarse donde uno quiera ( HTTP, POP3, SMTP, MSN,IRC,etc )

Clase SocketsClass.php


sock_host = $host;
		$this->sock_port = $port;
		if ($this->fp = @fsockopen($this->sock_host,$this->sock_port, $errno, $errstr, 4)) { return true; }
		else { return false; }
	}
	function sk_write($data) { @fputs($this->fp, $data); }
	function sk_get()
	{
		$this->data = @fgets($this->fp, 4096);
		return $this->data;
	}
	function sk_close() { @fclose($this->fp); }
	function sk_fp() { return $this->fp; }
}
?>

Aqui un ejemplo de Uso de la clase:

Supongamos que nos queremos conectar a google.com e imprimir lo mismo en nuestra página

ejemplo_Sockets.php


<?PHP
//Incluimos la clase
include('SocketsClass.php');
/*
Creamos la instancia a nuestra clase y le pasamos los parametros:
"Host" y "Puerto"
en este caso
"google" y "80" (80 es el puerto predeterminado para paginas webs)
*/
$s = new SocketsClass('www.google.com',80);
//Si el socket conecta enviara un "true" osino "false"
if ($s) {
	/*
	Con el METODO "sk_write()" Enviamos mensajes al servidor y Pasamos como parametro el contenido.
	Para paginas webs es necesario crear una cabecera de datos para que el servidor nos pueda responder
	Esa cabecera es la siguiente:

	GET  HTTP/1.1\r\n
	Host: \r\n
	\r\n
	*/
	$s->sk_write("GET / HTTP/1.1\r\nHost: www.google.com\r\nConnection: close\r\n\r\n");
	//creamos una variable vacia para luego ingresarle informacion adicional
	$contenido_web = '';
	/*
	primero creamos un ciclo si es que no se ha leido todo el contenido del socket
	*/
	// El Metodo "sk_fp()" Devuelve el socket actualmente usado
	while (!feof($s->sk_fp()))
	{
		/* Y para recibir la respuesta del servidor ocuparemos el METODO "sk_get()"  */
		$contenido_web .= $s->sk_get();
	}
	/*
	Cuando se halla leido toda la pagina el ciclo culminará y la variable "$contenido_web" tendra toda la informacion
	que el servidor nos respondio .
	Imprimimos para er que nos devuelve
	*/
	echo $contenido_web;
	//y cerramos nuestra conexion ( Socket ) con el metodo "sk_close()"
	$s->sk_close();

} else {
	echo 'ERROR: No Pudo Conectar';
}
?>

Aqui Pueden ver el Ejemplo

Se Pueden Usar Expresiones Regulares para sacar cualquier contenido de la pagina, algo específico, nose. Para eso Pueden leer sobre Preg_Match , Preg_Match_All , Ereg .

Para mas Usos pueden leer en Wikipedia sobre el protoclo HTTP.

Espero que sirva, adios.

Categorías:PHP Etiquetas: , ,
  1. Aún no hay comentarios.
  1. agosto 17, 2008 a las 4:05 am

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: