Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 设置ini后出现内部服务器错误(';内存限制';,';512M';);_Php - Fatal编程技术网

Php 设置ini后出现内部服务器错误(';内存限制';,';512M';);

Php 设置ini后出现内部服务器错误(';内存限制';,';512M';);,php,Php,在用php设置内存限制后,我总是会得到一个500的内部服务器错误。我不知道为什么,但如果我不知道,我的剧本会告诉我 致命错误:允许的X字节内存大小已用尽(尝试分配Y字节) 有什么办法解决这个问题吗 我使用的脚本是使图像的角变圆(透明角) 您试图分配太多内存。尝试将其切成两半,直到不再出现服务器错误。您试图分配太多内存。试着把它切成两半,直到你不再有服务器错误。我同意@DaveRandom我得到了与你相同的错误$q在10时,我放了一个1024x768图像,它试图创建一个10240x7680,相当

在用php设置内存限制后,我总是会得到一个500的内部服务器错误。我不知道为什么,但如果我不知道,我的剧本会告诉我

致命错误:允许的X字节内存大小已用尽(尝试分配Y字节)

有什么办法解决这个问题吗

我使用的脚本是使图像的角变圆(透明角)



您试图分配太多内存。尝试将其切成两半,直到不再出现服务器错误。

您试图分配太多内存。试着把它切成两半,直到你不再有服务器错误。

我同意@DaveRandom我得到了与你相同的错误$q在10时,我放了一个1024x768图像,它试图创建一个10240x7680,相当于一个7800万像素的图像,RGB几乎变成240MB


当我将$q设置为1时,代码运行良好,生成的图像棱角被很好地切割。

我同意@DaveRandom的观点,我得到了与您相同的错误,$q设置为10时,我放置了一个1024x768图像,它试图创建10240x7680,这相当于一个大小为7800万像素的图像,RGB几乎变成240MB



当我将$q设置为1时,代码运行良好,生成的图像很好地减少了角。

我可以将其设置为175M,而不会出现服务器错误,但随后出现致命错误:允许内存大小为183500800字节(尝试分配24000字节)是否检查了php_info()要查看当前的内存限制,请确定该计算机上有足够的内存。或者当它是共享主机时,有足够的内存可用。@Greg 64M根据phpinfo()@PeeHaa我不知道。不过,我对当前的主机非常不满意,一年后我就要更换。我可以将其设置为175M,而不会出现服务器错误,但随后我会遇到致命错误:允许的内存大小为183500800字节(尝试分配24000字节)已用完。您检查过php_info()吗要查看当前的内存限制,请确定该计算机上有足够的内存。或者当它是共享主机时,有足够的内存可用。@Greg 64M根据phpinfo()@PeeHaa我不知道。我对我现在的主人很不满意,一年过去了我就要换了。你做了什么需要这么多记忆的事情?也许你应该寻求帮助以减少内存使用。对我来说,听起来好像你有一些无限递归算法或类似的东西来使用所有这些和更多:)@EkimYardimli我把我正在使用的脚本添加到question@CupOfTea696错误的行号是多少?@CupOfTea696另外,看起来您保留
$src
的时间比需要的时间长得多-请尝试移动
imagedestroy($src);
到下一行
imagecopyresampled($img,$src,0,0,0,$nw,$nh,$w,$h);
@CupOfTea696您是有意将图像放大到10倍大小的吗?我刚刚在玩您的脚本,我和您一样出错,只要我将
$q=10;
更改为
$q=1;
它工作正常。您做什么需要这么多内存?也许您应该寻求帮助以减少内存ry用法。对我来说,听起来好像你有一些无限递归算法或类似的东西来使用所有这些和更多:)@EkimYardimli我将使用的脚本添加到question@CupOfTea696错误的行号是多少?@CupOfTea696另外,看起来您保留
$src
的时间比需要的时间长得多-尝试移动
imagedestroy($src)到下一行
imagecopyresampled($img、$src、0、0、0、$nw、$nh、$w、$h)@CupOfTea696您是否有意将图像放大到10倍大小?我刚刚在玩你的脚本,当我改变
$q=10时,我得到了与你相同的错误
$q=1它工作得很好。
<?php

function imageCreateCorners($sourceImageFile, $radius) {
    # test source image
    if (file_exists($sourceImageFile)) {
      $res = is_array($info = getimagesize($sourceImageFile));
      } 
    else $res = false;

    # open image
    if ($res) {
      $w = $info[0];
      $h = $info[1];
      switch ($info['mime']) {
        case 'image/jpeg': $src = imagecreatefromjpeg($sourceImageFile);
          break;
        case 'image/gif': $src = imagecreatefromgif($sourceImageFile);
          break;
        case 'image/png': $src = imagecreatefrompng($sourceImageFile);
          break;
        default: 
          $res = false;
        }
      }

    # create corners
    if ($res) {

      $q = 10; # change this if you want
      $radius *= $q;

      # find unique color
      do {
        $r = rand(0, 255);
        $g = rand(0, 255);
        $b = rand(0, 255);
        }
      while (imagecolorexact($src, $r, $g, $b) < 0);

      $nw = $w*$q;
      $nh = $h*$q;

      $img = imagecreatetruecolor($nw, $nh);
      $alphacolor = imagecolorallocatealpha($img, $r, $g, $b, 127);
      imagealphablending($img, false);
      imagesavealpha($img, true);
      imagefilledrectangle($img, 0, 0, $nw, $nh, $alphacolor);

      imagefill($img, 0, 0, $alphacolor);
      imagecopyresampled($img, $src, 0, 0, 0, 0, $nw, $nh, $w, $h);

      imagearc($img, $radius-1, $radius-1, $radius*2, $radius*2, 180, 270, $alphacolor);
      imagefilltoborder($img, 0, 0, $alphacolor, $alphacolor);
      imagearc($img, $nw-$radius, $radius-1, $radius*2, $radius*2, 270, 0, $alphacolor);
      imagefilltoborder($img, $nw-1, 0, $alphacolor, $alphacolor);
      imagearc($img, $radius-1, $nh-$radius, $radius*2, $radius*2, 90, 180, $alphacolor);
      imagefilltoborder($img, 0, $nh-1, $alphacolor, $alphacolor);
      imagearc($img, $nw-$radius, $nh-$radius, $radius*2, $radius*2, 0, 90, $alphacolor);
      imagefilltoborder($img, $nw-1, $nh-1, $alphacolor, $alphacolor);
      imagealphablending($img, true);
      imagecolortransparent($img, $alphacolor);

      # resize image down
      $dest = imagecreatetruecolor($w, $h);
      imagealphablending($dest, false);
      imagesavealpha($dest, true);
      imagefilledrectangle($dest, 0, 0, $w, $h, $alphacolor);
      imagecopyresampled($dest, $img, 0, 0, 0, 0, $w, $h, $nw, $nh);

      # output image
      $res = $dest;
      imagedestroy($src);
      imagedestroy($img);
      }

    return $res;
}

imagepng(imageCreateCorners('img.jpg', 13), 'test.png');
?>