6
votes

L'utilisation d'une PHP: // wrapper de mémoire provoque des erreurs

J'essaie d'étendre la classe de courrier PHP de Worx en ajoutant une méthode qui me permet d'ajouter des pièces jointes à l'aide de données de chaîne plutôt que de la voie du fichier.

J'ai eu quelque chose comme ça: xxx

Cependant, tout ce que je reçois est un avertissement PHP: xxx

Il n'y a pas d'exemples décents avec la documentation originale, mais je J'ai trouvé un couple autour d'Internet (y compris Un ici sur SO ), et mon utilisation semble correcte selon elles.

a quelque part que quelqu'un a eu un succès avec l'utilisation de cela?

Mon alternative est de créer un fichier temporaire et un nettoyage - mais cela signifie avoir à écrire sur le disque, et cette fonction sera utilisée dans le cadre d'un grand processus de lot et je souhaite éviter les opérations de disque lent (Old Server) dans la mesure du possible. Ceci n'est qu'un fichier court mais a des informations différentes pour chaque personne les courriels de script.


1 commentaires

Je suis waaay à la fin de cela, mais les tampons de mémoire ne seraient-ils pas supprimés sur FLOSE ()?


3 Réponses :


19
votes

C'est juste php: // mémoire . Par exemple, xxx

rendements "bugabuga".


1 commentaires

N'oubliez pas que rembobinage ($ h); et fsek ($ h, 0); est le même!



2
votes

En regardant rapidement http://php.net/manual/fr/wrappers. php.php et le code source, je ne vois pas le support pour le "/". MD5 (Microtime ()); " Bit.

code d'échantillon: xxx

sortie: xxx


3 commentaires

Hmm ... Ouais, j'ai essayé cela aussi - un problème que j'avais, c'est que je n'ai pas reçu le contenu attaché. Cela pourrait être parce que phpmailer utilise la mauvaise méthode pour cette chose ... Je viens de comprendre qu'il existe déjà une méthode de AddstringATCHEMMENT déjà dans PHPMailer (résout un problème immédiat) - mais c'est agréable d'apprendre le PHP: // Wrapper de mémoire


$ chemin = 'php: // mémoire /'. MD5 (Microtime ()); pause tout, vous devez utiliser $ chemin = 'php: // mémoire';


Ses échoue parce que vous fermez le descripteur de fichier, comme écrit dans Manuel! ** PHP: // Mémoire et PHP: // TEMP ne sont pas réutilisables, c'est-à-dire que, après la fermeture des flux, il n'y a aucun moyen de les renvoyer à nouveau. ** Utilisez rembobiner ($ fichier); insectes fcFose ($ fichier); !!