<?
 if($mode=="exec"){
$fp=fopen("index.css","w");
$str=$text;
$str=stripslashes($str);
 fwrite($fp,$str);
 fclose($fp);
 }
 ?>
  <form method="post" action="<?=$PHP_SELF?>?mode=exec">
 <textarea name="text" rows="20" cols="120"><?=htmlspecialchars(file_get_contents("index.css"))?></textarea><br />
 <input type="submit" />
  </form>


stripslashes : 함수는 인자로 지정된 문자열에서 역슬래시 코드들을 원래의 문자열들로 변환한 결과를 돌려준다.

스킨관리페이지(미니보드)를 따로 만들어 부분적인 편집을 위해 만들어 본 소스..

ex)
<?php
$str
= "Ist Ihr Name O\'reilly?"
;

// Ausgabe: Ist Ihr Name O'reilly?
echo stripslashes($str
);
?>

if(basename($_SERVER['PHP_SELF'])=="해당파일명[index.php]")

슬일이 많은 코드...
예전에 짜둔건데 웹표준을 생각해서 다시 손을 본겁니다.
웹상에 이미지를 호출하는 소스를 짤때 일일히 가로,세로 값을 저장하는 불편함을 완화 가기위해 만들어 본거지요.
물런 위즈윅방식(드림위버, 나모웹에디터) 할땐 자동으로 지정 되는것 같아요.

<?
function img($url,$css="",$alt="")
 {
  $imginfo = GetImageSize ($url);
  $ret_data= "<img src=\"".$url."\" ".$imginfo[3]." css=\"".$css."\" border=\"0\" alt=\"".$alt."\" />";
  return $ret_data;
 }
?>
스마티용 플러그인을 손봐서 만들것임.
언샤픈마트크는 이곳에서 좀더 자세히 볼수 있음
미니보드용은 이곳 에서...
<?
 function function_thumb($input, $output, $x, $y, $imgsharpen, $imgcrop)
 {
 $params['file']=$input;
 $_DST['file']=$output;
 $_DST['width']=$x;
 $_DST['height']=$y;
 if($imgcrop)$params['crop'] = 1;
 if($imgsharpen)$params['sharpen'] = 1;
 $temp = getimagesize($params['file']);
 $_SRC['file']  = $params['file'];
 $_SRC['width']  = $temp[0];
 $_SRC['height']  = $temp[1];
 $_SRC['type']  = $temp[2]; // 1=GIF, 2=JPG, 3=PNG, SWF=4
 $_SRC['string']  = $temp[3];
 $_SRC['filename']  = basename($params['file']);
 $_SRC['modified']  = filemtime($params['file']);

 if($params['crop'] and $x and $y)
  {       
  $width_ratio = $_SRC['width']/$_DST['width'];
  $height_ratio = $_SRC['height']/$_DST['height'];
 
  // Es muss an der Breite beschnitten werden
  if ($width_ratio > $height_ratio)
   {
   $_DST['offset_w'] = round(($_SRC['width']-$_DST['width']*$height_ratio)/2);
   $_SRC['width'] = round($_DST['width']*$height_ratio);
   }
  // es muss an der H?e beschnitten werden
  elseif ($width_ratio < $height_ratio)
   {
   $_DST['offset_h'] = round(($_SRC['height']-$_DST['height']*$width_ratio)/2);
   $_SRC['height'] = round($_DST['height']*$width_ratio);
   }
  }
  else {
  $params['longside'] = $_DST['width'];
  $params['shortside'] = $_DST['height'];
  $temp_large=$temp[0]>$temp[1] ? $temp[0] : $temp[1];
 
   //// 큰 쪽을 수정
   if($x and $y){
    if($temp_large>$x){
     $temp_sel = $temp_large==$temp[0] ? "width" : "height" ;
     if($temp_sel=="width"){
      $_DST['width']=$temp[0]>=$x ? $x : $temp[0];
      $_DST['height']=ceil($_DST['width'] * $temp[1] / $temp[0]);
     } else {
      $_DST['height']=$temp[1]>=$x ? $x : $temp[1];
      $_DST['width']=ceil($_DST['height'] * $temp[0] / $temp[1]);
     }
    }
   }
   //// 한쪽이 안정해졌을경우 ( 한쪽에만 맞춤 )
   elseif(!$x || !$y)
   {
    if($x){ // width 를 수치로 고정
     $_DST['width']=$x;
     $_DST['height']=ceil($_DST['width'] * $temp[1] / $temp[0]);
    }
    else{
     $_DST['height']=$y;
     $_DST['width']=ceil($_DST['height'] * $temp[0] / $temp[1]);
    }
   }
   
   //// 양쪽 다 정해졌을 경우
   else{ $_DST['width']=$x; $_DST['height']=$y; }
  }
 if ($_SRC['type'] == 1) $_SRC['image'] = imagecreatefromgif($_SRC['file']);
 if ($_SRC['type'] == 2) $_SRC['image'] = imagecreatefromjpeg($_SRC['file']);
 if ($_SRC['type'] == 3) $_SRC['image'] = imagecreatefrompng($_SRC['file']);
 if (!empty($params['type'])) $_DST['type'] = $params['type'];
 else $_DST['type'] = $_SRC['type'];
 $_DST['image'] = imagecreatetruecolor($_DST['width'], $_DST['height']);
 imagecopyresampled($_DST['image'], $_SRC['image'], 0, 0, $_DST['offset_w'], $_DST['offset_h'], $_DST['width'], $_DST['height'], $_SRC['width'], $_SRC['height']);
 if ($params['sharpen']) $_DST['image'] = UnsharpMask($_DST['image'],60,0.5,3);

 if(@imagetypes() & IMG_PNG) @ImagePNG($_DST['image'],$output);
      else @ImageJPEG($_DST['image'],$output);
      @chmod($output,0606);
 imagedestroy($_DST['image']);
 imagedestroy($_SRC['image']);
 return file_exists($output);
}

function UnsharpMask($img, $amount, $radius, $threshold)    { 
////////////////////////////////////////////////////////////////////////////////////////////////  
////  
////                  Unsharp Mask for PHP - version 2.1  
////  
////    Unsharp mask algorithm by Torstein Hønsi 2003-06.  
////             thoensi_at_netcom_dot_no.  
////               Please leave this notice.  
////  
///////////////////////////////////////////////////////////////////////////////////////////////  
 
    // $img is an image that is already created within php using 
    // imgcreatetruecolor. No url! $img must be a truecolor image. 
    // Attempt to calibrate the parameters to Photoshop: 
    if ($amount > 500)    $amount = 500; 
    $amount = $amount * 0.016; 
    if ($radius > 50)    $radius = 50; 
    $radius = $radius * 2; 
    if ($threshold > 255)    $threshold = 255; 
     
    $radius = abs(round($radius));     // Only integers make sense. 
    if ($radius == 0) { 
        return $img; imagedestroy($img); break;        } 
    $w = imagesx($img); $h = imagesy($img); 
    $imgCanvas = imagecreatetruecolor($w, $h); 
    $imgBlur = imagecreatetruecolor($w, $h); 
     
    // Gaussian blur matrix: 
    //                         
    //    1    2    1         
    //    2    4    2         
    //    1    2    1         
    //                         
    ////////////////////////////////////////////////// 
         
    if (function_exists('imageconvolution')) { // PHP >= 5.1  
            $matrix = array(  
            array( 1, 2, 1 ),  
            array( 2, 4, 2 ),  
            array( 1, 2, 1 )  
        );  
        imagecopy ($imgBlur, $img, 0, 0, 0, 0, $w, $h); 
        imageconvolution($imgBlur, $matrix, 16, 0);  
    }  
    else {  
    // Move copies of the image around one pixel at the time and merge them with weight 
    // according to the matrix. The same matrix is simply repeated for higher radii. 
        for ($i = 0; $i < $radius; $i++)    { 
            imagecopy ($imgBlur, $img, 0, 0, 1, 0, $w - 1, $h); // left 
            imagecopymerge ($imgBlur, $img, 1, 0, 0, 0, $w, $h, 50); // right 
            imagecopymerge ($imgBlur, $img, 0, 0, 0, 0, $w, $h, 50); // center 
            imagecopy ($imgCanvas, $imgBlur, 0, 0, 0, 0, $w, $h); 
            imagecopymerge ($imgBlur, $imgCanvas, 0, 0, 0, 1, $w, $h - 1, 33.33333 ); // up 
            imagecopymerge ($imgBlur, $imgCanvas, 0, 1, 0, 0, $w, $h, 25); // down 
        } 
    } 
    if($threshold>0){ 
        // Calculate the difference between the blurred pixels and the original 
        // and set the pixels 
        for ($x = 0; $x < $w; $x++)    { // each row 
            for ($y = 0; $y < $h; $y++)    { // each pixel 
                     
                $rgbOrig = ImageColorAt($img, $x, $y); 
                $rOrig = (($rgbOrig >> 16) & 0xFF); 
                $gOrig = (($rgbOrig >> 8) & 0xFF); 
                $bOrig = ($rgbOrig & 0xFF); 
                 
                $rgbBlur = ImageColorAt($imgBlur, $x, $y); 
                 
                $rBlur = (($rgbBlur >> 16) & 0xFF); 
                $gBlur = (($rgbBlur >> 8) & 0xFF); 
                $bBlur = ($rgbBlur & 0xFF); 
                 
                // When the masked pixels differ less from the original 
                // than the threshold specifies, they are set to their original value. 
                $rNew = (abs($rOrig - $rBlur) >= $threshold)  
                    ? max(0, min(255, ($amount * ($rOrig - $rBlur)) + $rOrig))  
                    : $rOrig; 
                $gNew = (abs($gOrig - $gBlur) >= $threshold)  
                    ? max(0, min(255, ($amount * ($gOrig - $gBlur)) + $gOrig))  
                    : $gOrig; 
                $bNew = (abs($bOrig - $bBlur) >= $threshold)  
                    ? max(0, min(255, ($amount * ($bOrig - $bBlur)) + $bOrig))  
                    : $bOrig; 
                 
                 
                             
                if (($rOrig != $rNew) || ($gOrig != $gNew) || ($bOrig != $bNew)) { 
                        $pixCol = ImageColorAllocate($img, $rNew, $gNew, $bNew); 
                        ImageSetPixel($img, $x, $y, $pixCol); 
                    } 
            } 
        } 
    } 
    else{ 
        for ($x = 0; $x < $w; $x++)    { // each row 
            for ($y = 0; $y < $h; $y++)    { // each pixel 
                $rgbOrig = ImageColorAt($img, $x, $y); 
                $rOrig = (($rgbOrig >> 16) & 0xFF); 
                $gOrig = (($rgbOrig >> 8) & 0xFF); 
                $bOrig = ($rgbOrig & 0xFF); 
                 
                $rgbBlur = ImageColorAt($imgBlur, $x, $y); 
                 
                $rBlur = (($rgbBlur >> 16) & 0xFF); 
                $gBlur = (($rgbBlur >> 8) & 0xFF); 
                $bBlur = ($rgbBlur & 0xFF); 
                 
                $rNew = ($amount * ($rOrig - $rBlur)) + $rOrig; 
                    if($rNew>255){$rNew=255;} 
                    elseif($rNew<0){$rNew=0;} 
                $gNew = ($amount * ($gOrig - $gBlur)) + $gOrig; 
                    if($gNew>255){$gNew=255;} 
                    elseif($gNew<0){$gNew=0;} 
                $bNew = ($amount * ($bOrig - $bBlur)) + $bOrig; 
                    if($bNew>255){$bNew=255;} 
                    elseif($bNew<0){$bNew=0;} 
                $rgbNew = ($rNew << 16) + ($gNew <<8) + $bNew; 
                    ImageSetPixel($img, $x, $y, $rgbNew); 
            } 
        } 
    } 
    imagedestroy($imgCanvas); 
    imagedestroy($imgBlur); 
     
    return $img; 
}
?>

+ Recent posts