PHP'nin fwrite bir soket dosya işaretçisi yazma vermiyor

0 Cevap php

Ben bir filepointer yazma için aşağıdaki PHP kodu var $fp kullanılarak açılmasını fsockopen:

syslog(LOG_INFO, "Write " . strlen($buf) . " bytes to socket:");

$bytes = 0;
while ($bytes < strlen($buf) && ($w = @fwrite($fp, substr($buf, $bytes))))
{
    syslog(LOG_INFO, "  - " . $w . " bytes written to socket");
    $bytes += $w;
}

if ($bytes != strlen($buf))
{
    syslog(LOG_INFO, "error while writing to socket");
    exit();
}

Bu kod olarak uzun boyutu olarak $buf küçük yeterli çalışıyor. Veri büyük bir miktarı tam olarak yazılır olamaz. Ben şu çıktıyı alırsınız:

Write 4900360 bytes to socket:
  - 11096 bytes written to socket
error while writing to socket

btw. dönüş değeri fwrite olup 0 olup false.

Herkes ne sorun olabilir bir fikri var mı? Teşekkürler cevaplar için çok

Fwrite önünde @ çıkarırken ben şu uyarıları alıyorum:

Notice: fwrite(): send of 8192 bytes failed with errno=104 Connection reset by peer in /root/test.php on line 10

Notice: fwrite(): send of 8192 bytes failed with errno=32 Broken pipe in /root/test.php on line 10

Ben olsun, ben sadece TCP Stream kokladı ve ben anladım bir

HTTP/1.1 413 Request Entity Too Large

Bu sorunun herhangi bir düzeltme var mı? Ben bir lighttpd/1.4.22 sunucusu kullanmak

0 Cevap