웹마스터 팁



환장하거씀다.
앞전에 막대그래프 맹기러주는 함수 올렸더니
그 소스 테스트 한다는 분들 완죠니 이상하고 엉뚱한 자료들만 입력해서
생성된 그래프가 진짜 개판 오분전입니다.

제대로 된 자료 입력하고 출력결과를 확인해보고 제대로 테스트하면
지구가 얼마나 평화롭겠슴까.


테스트 빙자해서 자꾸 엉뚱한 자료 입력하고 개판 맹글면
나도 이 게시판에 내 개판오분전 강좌로 도배해서
이 PHP 게시판을 개판 오분전으로 만들거씀다.


아래 소스는 라인 그래프 맹기러주는 함수와 입력폼입니다.

값은 라인 그래프가 가르키는 각각의 값이며 x 는 그래프의 가로크기이고
y 는 그래프의 세로크기.
값이름은 거시기임당.(한글 안됨다. 비밀이지만 한글 입력 가능해보려 소스 수정하려다가
머리가 살짝 돌아서 미친개 돼삣씀다.)


뭐 필요한 사람은 라이브러리에 포함 시켜 쓰시던지 뭐라 할 사람 하나 음씀다.

test : http://allzza.net/my3.php

<?
$img_url = "./tt/test3.png";
if($a)    {
       line_graph(explode(",",$a),$b,$c,explode(",",$d),$img_url);
       echo "<img src="$img_url">";
       }

function line_graph($val,$x,$y,$x_val,$img_url)   { //-- 라인 그래프 만들어주는 함수
     /*
     $val : 값을 원소로 하는 배열
     $x : 그래프 가로축 크기
     $y : 그래프 세로축 크기
     $x_val : x축 값의 이름 배열
     $img_url : 저장할 파일의 경로와 이름(png)
     */

     $r_x = $x - 40;
     $r_y = $y - 40;
     $gaesu = count($val);
     for($i=0;$i<$gaesu;$i++)   { //-- 점이 찍히는 x 위치
            if(!$i)  $point_x[] = ($r_x / $gaesu) /2;
            else $point_x[] = $r_x / $gaesu + $point_x[$i - 1];
            }

     $max_ = max($val);
     for($m=0;$m<strlen($max_);$m++)  {   //-- 가로 선을 긋기 위해 최대값의 올림값을 구함
          if(!$m) {
                $max_value = substr($max_,0,1) + 1;
                $z_ = $max_value;
                }
          else $max_value .= 0;
          }

     $gg = array(1,1,4,3,4,5,4,7,4,6,5);
     $ggg = $max_value / $gg[$z_];
     for($n=0;$n<$z_;$n++)   {            //-- 가로선이 그어지는 y 좌표 배열
          if($n==0) {
               $z_index[] = $r_y;
               $z_val[] = 0;
               }
          else {
               $z_index[] = $r_y - $r_y / $z_ * $n;
               $z_val[] = $n * $ggg;
               }
          }
    
     $im =  @ImageCreate($x,$y) or die ("이미지를 초기화 하지 못했습니다");
    
     $backgroundcolor=ImageColorAllocate($im,234,253,231);  //-- 그랩 바탕색
     $pointcolor = ImageColorAllocate($im,65,127,250); //-- 그랩 색깔
     $white = ImageColorAllocate($im,255,255,240);            //-- 그랩 바닥색
     $line_color = ImageColorAllocate($im,255,102,240);            //-- 라인 색
    
     ImageFilledRectAngle($im,0,0,$r_x,$r_y,$backgroundcolor);    
     ImageFilledRectAngle($im,0,$r_y,$r_x,$y,$white);
     ImageFilledRectAngle($im,$r_x,0,$x,$y,$white);
    
     for($p=0;$p<count($z_index);$p++)   {
           if($p) {
                 ImageLine($im,0,$z_index[$p],$r_x,$z_index[$p],$line_color);
                 Imagestring($im,3,$r_x + 8, $z_index[$p] - 10,$z_val[$p],imagecolorallocate($im,42,31,21));
                 }
            
           }
          
     for($q=0;$q<$gaesu;$q++)   {
           //imagearc($im,$point_x[$q],$max_value - $val[$q],4,4,0,360,$pointcolor);
           imagearc($im,$point_x[$q],$r_y - $val[$q]/$max_value * $r_y,6,6,0,360,$pointcolor);
           imageFill($im,$point_x[$q],$r_y - $val[$q]/$max_value * $r_y,$pointcolor);
           if($q)  imageLine($im,$point_x[$q-1],$r_y - $val[$q-1]/$max_value * $r_y,$point_x[$q],$r_y - $val[$q]/$max_value * $r_y,$pointcolor);
           imageString($im,3,$point_x[$q]-5,$r_y + 10,$x_val[$q],imagecolorallocate($im,42,31,21));
           }
    
     ImagePNG($im,$img_url);
     ImageDestroy($im);
    
     }
?>
<form name=my method=post action="<? $PHP_SELF; ?>">
값 : <input type=text size=50 name=a value="<?=$a;?>"><br>
가로 : <input type=text size=5 name=b value="<?=$b;?>"><br>
세로 : <input tpye=text size=5 name=c value="<?=$c;?>"><br>
값이름 : <input type=text size=50 name=d value="<?=$d;?>"><br>
파일 이름 : <input type=text readonly size=30 value="./tt/test3.png" name=e><br>
<input type=button value="구래푸 맹글기" onclick='this.form.submit()'>
</form>
제목 글쓴이 날짜
개판 오분전 라인 그래프 [4] 미친개 2004.12.01
실명 진위여부 확인 [10] piasol 2004.12.01
나만의 미니홈 만들기 ㅡ write.php 파일과 write_ok [5] 예뜨락 2004.11.30
나만의 미니홈 만들기 ㅡ view.php 파일과 제목링크 [9] file 예뜨락 2004.11.27
나만의 미니홈 만들기 ㅡ list.php , 디비 테이블 생성 [6] file 예뜨락 2004.11.26
나만의 미니홈 만들기 ㅡ 게시판 list.php 파일의 모양새 [6] 예뜨락 2004.11.23
나만의 미니홈 만들기 ㅡ 게시판의 디자인 file 예뜨락 2004.11.22
나만의 미니홈 만들기 ㅡ 미니홈 생성 페이지 [3] file 예뜨락 2004.11.20
나만의 미니홈 만들기 ㅡ 기초적인 관리 페이지 [3] file 예뜨락 2004.11.20
나만의 미니홈 만들기 ㅡ 메인 기초 설계3 .레이아웃 [2] file 예뜨락 2004.11.19
나만의 미니홈 만들기 ㅡ 메인 기초 설계2 .레이아웃 예뜨락 2004.11.18
나만의 미니홈 만들기 ㅡ 글쓰기에 앞서... [1] 예뜨락 2004.11.17
[타키의 초보강좌]PHP 기초 강좌 제 2탄[mysql로 들어가보자.] [2] 타키 2004.10.24
소수[솟수] 쉽게 구하기[에라토스테네스의 해 알고리즘사용] , 경우의 수 구하기 [5] 타키 2004.10.23
[타키의 초보강좌]PHP 기초 강좌 제 1탄[패스워드 인증] [8] 타키 2004.10.23
www자동 붙히기 [8] 미오유 2004.10.22
IP to 정수변환(;) [4] 플로렐라 2004.10.21
한글자르는 문제 PHP차원에서 해결된 건가? [5] 겜방 2004.10.20
MySQL의 패턴 매칭 맛보기 [2] 손상모 2004.10.19
그래프 만들어주는 소스 [10] 미친개 2004.10.15