2017-06-30 2 views
0

Je suis en train de créer flux de chaîne et le 2 ligne j'obtiens regard d'erreur comme celui-cifonction fwrite - Autoriser l'erreur de limite de mémoire

taille maximale autorisée pour la mémoire de 134217728 octets épuisé (a essayé d'allouer 24379392 octets)

$stream = fopen('php://memory','r+'); 
fwrite($stream, $response); 
rewind($stream); 

Je suis en train d'obtenir le contenu du fichier volumineux à partir d'un autre hôte, et situé dans le

locale Voici ma logique.

$url = "https://webdav.abc.ru/abc/20/Storage/Files/c/c51256c25c0cb2610d5018df204b0135.mp4"; 
$method = "GET"; 
$headers = [];$body = null; 
$response = $this->send(new HTTP\Request($method, $url, $headers, $body)); 
$stream = fopen('php://memory','r+'); 
fwrite($stream, $response); 
rewind($stream); 
$response = $this->parseCurlResult($stream, $this->curlHandle); 
+0

Afficher le code dans lequel vous essayez d'obtenir le contenu d'un fichier volumineux. –

Répondre

0

Ceci est provoqué par votre paramètre PHP. Devrait être facile à corriger si vous avez accès à php.ini.

Ajustez les paramètres de limite de mémoire (memory_limit) dans php.ini.

Exemple dans php.ini:

memory_limit=4096M 

ou

Dans le fichier où vous avez besoin d'une limite supérieure:

ini_set('memory_limit', '4096M'); 
+0

c'est une très mauvaise suggestion, donc je ne veux pas faire de changements dans mon fichier php.ini, je veux améliorer la logique seulement –

+0

Vrai que vous pouvez le définir dans php.int Vous pouvez également le faire par programme si vous avoir différents types de script ou de requêtes –

+0

php.ini et ini_set sont les seules options que vous avez. – Companjo

-1

Vous pouvez utiliser ini_set("memory_limit", your-memory-limit-here) par exemple

ini_set("memory_limit","512M"); // your can also set a number of bytes parameter but it is easier to set a string indicating MB limit 
+0

c'est une très mauvaise suggestion, donc je ne veux pas faire de changements dans mon fichier php.ini, je veux améliorer la logique seulement –

+0

Cela dépend de la quantité de mémoire que vous avez et ce que vous anticipez les exigences seront. Donc, dans certains scénarios, ce sera une solution bonne et facile. –