2011-05-11 1 views
7

La bibliothèque IMAP PHP n'a pas de façon intégrée de modifier la fonction imap_timeout pour les connexions POP3 sécurisées. Je cherche à construire cette fonctionnalité afin que je puisse définir le délai d'attente à 1 seconde pour les connexions pour les serveurs pop3 sécurisés, mais je ne sais pas exactement où je commencerais à apprendre comment surcharger la commande php.ini dans une fonction PHP. Des idées?Comment remplacer le délai d'attente php.ini pour la fonctionnalité imap_timeout avec des serveurs POP3 sécurisés?

imap_timeout (1,) fonctionne très bien pour les connexions pop3, mais apparemment pas pop3s (ssl, port 995) connexions, où le délai d'attente socket par défaut est toujours valable. Ceci s'applique à php 4.3.10, non testé sur les autres versions .


Nous avons examiné la source pour savoir ce que cette fonction ne fait et comment l'utiliser. La fonction remplace la default_socket_timeout mise de votre fichier php.ini

Vous pouvez récupérer la longueur actuelle délai pour chaque type de délai d'attente en appelant la fonction comme:

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

Vous pouvez définir la longueur du délai d'attente pour tout des types de délai d'expiration en définissant la valeur du délai sur un nombre de secondes.

imap_timeout (timeout_type,);

Les types de délai d'attente sont les suivants:

1: Open 2: Lire 3: Ecrire 4: Fermer

Il ne semble pas que le type proche a été mis en œuvre.

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

+0

Avez-vous essayé 'ini_set ('default_socket_timeout', 999)'? – Havenard

+0

Je veux obtenir le délai d'attente de 1 seconde pour les connexions pop3 seulement, mais je crains que cela expire toute la fonction. –

+0

@Havenard ini_set ('default_socket_timeout', 2); ça ne marche pas pour moi. –

Répondre

5

Utilisez le default_socket_timeout

ici est petite démonstration pour remplacer la configuration par défaut.

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

// restore to the default socket timeout 
ini_restore('default_socket_timeout'); 
Questions connexes