2011-05-11 7 views
7

La biblioteca de PHP IMAP no se ha creado para cambiar la función imap_timeout para conexiones seguras pop3. Estoy buscando construir esta funcionalidad para poder establecer el tiempo de espera en 1 segundo para las conexiones de servidores POP3 seguros, pero no estoy seguro de dónde comenzaría a aprender sobre la anulación del comando php.ini dentro de una función de PHP. ¿Algunas ideas?Cómo anular el tiempo de espera de php.ini para la funcionalidad de imap_timeout con servidores POP3 seguros

imap_timeout (1,) funciona bien para las conexiones POP3, pero al parecer no para pop3s (SSL, puerto 995) conexiones, donde el tiempo de espera por defecto toma sigue siendo válida. Esto se aplica a php 4.3.10, no probado en otras versiones de .


Nos daba a la fuente para averiguar lo que realmente hace esta función y cómo usarlo. La función anula el ajuste de su archivo php.ini default_socket_timeout

Puede recuperar la longitud actual de tiempo de espera para cada tipo de tiempo de espera por llamar a la función como:

imap_timeout (timeout_type); o imap_timeout (timeout_type, -1);

Puede establecer la duración del tiempo de espera para cualquier de los tipos de tiempo de espera estableciendo el valor de tiempo de espera en un número de segundos.

imap_timeout (timeout_type,);

tipos El tiempo de espera son los siguientes:

1: Abrir 2: Leer 3: Escribir 4: Cerrar

No parece que el tipo cercano se ha implementado.

Fuente: https://students.kiv.zcu.cz/doc/php5/manual/cs/function.imap-timeout.php.html

+0

¿Has probado 'ini_set ('default_socket_timeout', 999)'? – Havenard

+0

Quiero obtener un tiempo de espera de 1 segundo para solo conexiones pop3, pero me preocupa que se agote el tiempo de toda la función. –

+0

@Havenard ini_set ('default_socket_timeout', 2); no funciona para mi –

Respuesta

5

uso del default_socket_timeout

aquí es pequeña demostración para anular la configuración por defecto.

ini_set('default_socket_timeout', 2); 
// your socket based code here 

// restore to the default socket timeout 
ini_restore('default_socket_timeout'); 
Cuestiones relacionadas