php로 꺾인선 그래프를 만들어보자

프로그래밍/PHP|2015. 1. 27. 11:34
반응형

우선은 php의 이미지 함수를 이용해야 한당!!

그리고 리눅스에는 GD Library가 최신걸로 셋팅이 되어있어야 하구요!!

없으면 깔어셔야 합니다.

 

우선 test.html 에 이 소스를 붙이죠

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<img src="graph.php?0,0,0,0,0.5,2.2,7.1,20.9,42.3,26.9"  width="274" height="188" border="0">
</BODY>
</HTML>
이렇게 말입니다.

graph.php?0,0,0,0,0.5,2.2,7.1,20.9,42.3,26.9 --> 요거는 머냐구요?? 그래프를 그릴 좌표값입니다.

보시면 아시것지만 graph.php 이파일에  좌표값을 전달하는 것이지요

그리고 본격적으로 그래프를 그릴 소스파일을 만듭니다.

 

graph.php 파일에

 

<? 
  Header("Content-type : image/png"); 
  
  $query_string = urldecode(getenv("QUERY_STRING")); 
  $query_string = explode("," , $query_string); 
 
  for ($i=0; $i<10; $i++){
   if ($y_max < intval($query_string[$i])){
    $y_max = intval($query_string[$i]);
    }
  }
  
  $image = ImageCreate(274,188); 
  $white = ImageColorAllocate($image , 255,255,255); 
  $skin = ImageColorAllocate($image , 250,219,172); 
  $black = ImageColorAllocate($image , 0,0,0); 
  $dark_gray = ImageColorAllocate($image , 241,241,241); 
  
  ImageLine($image , 33,15,233,15, $black); 
  ImageLine($image , 33,15,33,165, $black); 
  ImageLine($image , 33,165,233,165, $black); 
  ImageLine($image , 233,15,233,165, $black);
  ImageLine($image , 25,20,25,170, $black); 
  ImageLine($image , 25,170,225,170, $black);
  
  ImageString($image , 2, 3, 4,"Man(%)",$black);
  ImageString($image , 2, 250, 174,"Avg",$black);

  //x축 안선
  for ($i=25; $i < 160; $i=$i+10){
  ImageLine($image , 33,$i,233,$i, $dark_gray); 
  }

  //x축 대칭
  for ($i=20; $i<171; $i=$i+10){
  ImageLine ($image,25,$i,33,$i-5,$black); 
  }
  
  // y축 안선
  for ($i=53; $i < 230; $i=$i+20){
  ImageLine($image , $i,15,$i,165, $dark_gray); 
  }
  
  // y축 대칭
  for ($i=25; $i<226; $i=$i+20){
   ImageLine ($image,$i,170,$i+10,165,$black); 
   }
  
  //x축 값
  $x_position =22;
  $x_value =0;
  for ($i=0; $i<=10; $i++){
 ImageString($image,2,$x_position,175,$x_value,$black);
 $x_position= $x_position + 20;
 $x_value = $x_value + 10;
  }
  
  //y축 값
  $y_position = 23;
  if ( $y_max <=  35){
   $y_value = 28;
  } else {
   $y_value = $y_max;
  } 
  
   $temp = intval($y_value/7);
   $y_value = $temp * 7 +7;
   $y_max = $y_value;
   $skip = $temp +1;
  
  for ($i=0; $i<=7; $i++) {
    ImageString($image,2,7,$y_position,$y_value,$black);
 $y_position=$y_position+20;
 $y_value = $y_value - $skip;
  }
  
 // 막대그래프 꺽은선 그래프
  $rectPosition =35;
  $linePosition =40;
  for ($i=0; $i<10; $i++) {
    $y_rectPosition = 145 * intval($query_string[$i])/$y_max;
 $y_rectPosition = 170-$y_rectPosition;
    imageFilledRectangle($image, $rectPosition ,$y_rectPosition,$rectPosition+10,167, $skin);
 imageFilledRectangle($image, $linePosition-2, $y_rectPosition-2, $linePosition+2, $y_rectPosition+2 ,$black);
 $rectPosition = $rectPosition +20;
 if ($i != 0){
 ImageLine($image ,$temp1,$temp2,$linePosition,$y_rectPosition, $black); 
 }
 $temp1 = $linePosition;
 $temp2 = $y_rectPosition;
 $linePosition = $linePosition +20;
  }
    
  ImagePNG($image); 
  ImageDestroy($image); 
 
?>
요렇게 말입니다. ㅎㅎㅎㅎ

 

[출처] 홀로서기 | 한아름 (http://blog.naver.com/sire81/60014014950)

반응형

댓글()

[제로보드] xe에서 이미지 삽입후 이미지 위에 노란색 박스 사라지게하는 법

프로그래밍/PHP|2015. 1. 27. 11:34
반응형
기존에 삽입된 이미지들을 보면
노란색 박스로 파일명이 나타나는 것을 볼 수 있습니다.

신경 많이 쓰이니깐 삭제하고 싶은데,

삭제가 안되시는 분들 많았을 껍니다.

삭제하는 방법을 알려드리겠습니다.

기존에 첨부했던 이미지도 전부 해당하는 사항입니다.

제로보드 폴더안에 하위로
modules/editor/components/images_link/image_link.class.php 파일안에
60번째라인 이후에 다음과 같은 소스가 있음을 확인할 수 있습니다.

            $attr_output = array();
            $attr_output = array("src="".$src.""");
            if($alt) {
                $attr_output[] = "alt="".$alt.""";
                $attr_output[] = "title="".$alt.""";
            }
            if($align) $attr_output[] = "align="".$align.""";


위 사항을 


            $attr_output = array();
            $attr_output = array("src="".$src.""");
            if($alt) {
                $attr_output[] = "alt="".$alt.""";
                $attr_output[] = "title=""";
            }
            if($align) $attr_output[] = "align="".$align.""";

와 같이 변경하시면 사라진 것을 확인하실 수 있습니다.

ps. 저 라인을 삭제할경우 박스가 남아있더군요.

허무하죠?

인생이 원래 그렇습니다. 하루 웬종일 하던게 -_-;
오늘 코드를 보니 10분만에 답을 찾아내더군요 ㄷㄷ;;

제로보드 잘 쓰세요.

[출처] 진주원룸 | 진주도깨비 (http://3x3.kr/292)


반응형

'프로그래밍 > PHP' 카테고리의 다른 글

php 숫자 끝의 두자리만 출력  (0) 2015.01.27
php로 꺾인선 그래프를 만들어보자  (0) 2015.01.27
libpcap 를 이용한 프로그래밍  (0) 2015.01.27
php 남은 날짜 계산하기  (0) 2015.01.27
php 날짜함수 예문  (0) 2015.01.27

댓글()

libpcap 를 이용한 프로그래밍

프로그래밍/PHP|2015. 1. 27. 11:32
반응형

http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Network_Programing/AdvancedComm/pcap_intro

반응형

댓글()

php 남은 날짜 계산하기

프로그래밍/PHP|2015. 1. 27. 11:32
반응형

<?
// 남은 날짜 계산하기
$start_date = mktime(0,0,0,월,일,년);
$finish_date = mktime(0,0,0,월,일,년);
$residual_day = "".(($finish_date-$start_date)/60/60/24)."일";
echo "$residual_day";

?>

* 월, 일, 년 대신 숫자 입력

 

반응형

댓글()

php 날짜함수 예문

프로그래밍/PHP|2015. 1. 27. 11:32
반응형

24시간제로 시간을 출력

date("Y-m-d H:i:s");

결과 : 2013-06-13 12:00:00 


오늘로부터 5일 후

echo date("Y-m-d",strtotime("+5 day"));

echo date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+5, date("Y")))


오늘로부터 3일 전

echo date("Y-m-d",strtotime("-3 day"));

echo date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")-3, date("Y")))

 

오늘로부터 6주 전

$calyoil = 5 - date("w"); //현재 요일에서 금요일을 구하기 위한 가감 
$needday = strtotime("-6 week"); // 6
주전 
$needday = date("Y-m-d" , strtotime("$calyoil days",$needday)); 
echo $needday;

 

날짜 사이의 계산 (오늘부터 내 생일까지의 남은 일수)

$dBirth = "2010-12-25";

echo intval((strtotime($dBirth)-strtotime(date("Y-m-d")))/86400);

 

윤년

if(29==date(t,mktime(0,0,0,2,1,$year)) 
echo "
윤년"; 
else echo "
윤년아님";

 

--mktime(,,,,,년도)--

 

그 달의 마지막 날짜  가지고 오기

$lastday = date(t,mktime(0,0,1,$month,1,$year));

 

금주의 시작일 구하기

$now=date("w");

$m=$now-1;

$start=date("Y-n-d",strtotime("-$m day"));

JS 날짜 정리

Month ( 0 ~ 11까지 정의 된다 )  현재월을 표시하려면 month -1 하여라 ..

 

날짜 객체  생성  var today = new Date(  ,  ,  ) ;

날짜 년 가지고 오기 today.getYear();

날짜 월 가지고 오기 today.getMonth();  ( 현재월 가지고 올경우  +1 )

날짜 일 가지고 오기 today.getDate();  (day 가 아니 getDate 이다)

날짜 월 짜리수 맞추기 위한 if  = parseInt() < 10 ? - + parseInt() : parseInt();

 

 

Mysql 날짜 함수

select date_sub(now(), interval 5 day); 
5
일후.. 
select date_add(now(), interval -5 day); 
5
일전...

 

[출처] aramjo's Blog | 아람조 (http://aramjo.blog.me/120041465619)

반응형

'프로그래밍 > PHP' 카테고리의 다른 글

libpcap 를 이용한 프로그래밍  (0) 2015.01.27
php 남은 날짜 계산하기  (0) 2015.01.27
[php] 100일 뒤 날짜 구하기  (0) 2015.01.27
PHP 로그인세션 - 다른것  (0) 2015.01.27
PHP 로그인세션  (0) 2015.01.27

댓글()

[php] 100일 뒤 날짜 구하기

프로그래밍/PHP|2015. 1. 27. 11:31
반응형

echo date('Y-m-d'); 
echo date('Y-m-d',strtotime('+ 100 days')); 

echo date('Y년 m월 d일'); 
echo date('Y년 m월 d일',strtotime('+ 100 days'));

 

[출처] phpschool (http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_html&wr_id=162192)

반응형

'프로그래밍 > PHP' 카테고리의 다른 글

php 남은 날짜 계산하기  (0) 2015.01.27
php 날짜함수 예문  (0) 2015.01.27
PHP 로그인세션 - 다른것  (0) 2015.01.27
PHP 로그인세션  (0) 2015.01.27
PHP 날짜 및 시간 관련 함수  (0) 2015.01.27

댓글()

PHP 로그인세션 - 다른것

프로그래밍/PHP|2015. 1. 27. 11:30
반응형

1. 최대한 간단하게 한 거구요.

2. 디자인은 알아서 하시구요.

3. 절대 테스트는 안 했습니다. 걍 생각나는 대로 했습니다.

 

login.php

<form action="login_ok.php" method="post">

   <input type="text" name="userID" /><br />

   <input type="text" name="userPW" /><br />

   <input type="submit" value="login" />

   <input type="hidden" name="action" value="login" />

</form>

 

login_ok.php

<?

if(!$_POST['login']) {

   echo "

            <script>

            alert('sorry');

            history.back(-1);

            </script>

            ";

   exit;

} else {

   $que = "select * from 회원테이블명 where 아이디칼럼명 = '$_POST[userID]' and 패스워드칼럼명 = '$_POST[userPW]'";

   $res = mysql_query($que);

   $row = mysql_fetch_array($res);

   if($row) {

      $_SESSION['userID'] = $_POST['userID'];

      echo "

               <script>

               location.href="index.php";

               </script>

               ";

   } else {

      echo "

               <script>

               alert('id랑 pw 확인');

               history.back(-1);

               </script>

               ";

      exit;

}

}

?>

 

index.php(login.php 파일 인클루드 하셨다 했으니)

<?

session_start();

 

$que = "select * from 회원테이블명 where 아이디 = '$_SESSION[userID]'";

$res = mysql_query($que);

$row = mysql_fetch_array($res);

 

if($_SESSION) {

   echo "$row[아이디칼럼명] 님 환영~";

} else {

   include "login.php";

}

?>

 

[출처] 지식인 (http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040203&docId=67704305&qb=cGhwIOuhnOq3uOyduCDshLjshZg=&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=gpIbMF5Y7t0sstf%2BID4ssc--197172&sid=Tp6GOhJpnk4AABS@w4A)

반응형

'프로그래밍 > PHP' 카테고리의 다른 글

php 날짜함수 예문  (0) 2015.01.27
[php] 100일 뒤 날짜 구하기  (0) 2015.01.27
PHP 로그인세션  (0) 2015.01.27
PHP 날짜 및 시간 관련 함수  (0) 2015.01.27
iframe 내용의 크기의 따라 변경되는 화면  (0) 2015.01.27

댓글()

PHP 로그인세션

프로그래밍/PHP|2015. 1. 27. 11:30
반응형

세션을 만드려면 맨위에 session_start();를 반드시 사용해야합니다.

혹 앞에 문자가 하나라도 찍히면 Warning:Cannot add header information - headers already sent by.. 식의 에러가 납니다.

반드시 맨위에 session_start();오도록 해야합니다.

 

그러나 저같은경우 맨위에 적용했음에도 불구하고 계속 오류가 났습니다. 문제는....  utf-8형식..

ultraedit에서 utf-8형식으로 사용했는데 분명 공백은 없엇습니다. 그러나 모르는 뭔가가 한개 저장되나봅니다.

editplus 2.3버전에 가서 다시 저장했더니 바로 정상적으로 동작했습니다. utf-8 힘들어요.. ㅠ.ㅠ

 

--------------------------------------------

<1. 로그인했을때 처리페이지 예제>

<?  session_start();

     $userid_login = $_REQUEST["userid_login"];
     $pwd_passwd = $_REQUEST["pwd_passwd"];
?>
<?php
          if (아이디와 패스워드가 일치한다면???? ){   //login!
                 session_register("session_userid");
                $_SESSION['session_userid'] = $row ["userid"]; //세션값 원하는데로 입력
               
 if (session_is_registered("session_userid")==false) { 
                     // 세션오류 처리 

                }else { 메인화면으로 고고!!!! } //세션성공
            }else{ 

                //아이디와 암호 틀렸어요.. 다시 처리해주세요

            }
?>

 

 

--------------------------------------------

<2. 매페이지마다 로그인체크 예제. include파일로 최상단에 붙여줍니다.>

<?php session_start();
        if (session_is_registered("session_userid")==false) {  //세션끊김
              
//세션없어요..  로그인해줘요...

          }

 ?>

 

--------------------------------------------

<3. 로그아웃>

<?php 
    session_start();
    session_cache_limiter('no-cache, must-revalidate');  
    session_unregister(session_userid);  
    session_destroy(); 
?>
 로그아웃하고 어떤페이지로 보낼까나.. 여튼 고고!!

 

[출처] ... | 하늘향해 (http://blog.naver.com/dbgirl2004/60035449445)

반응형

댓글()

PHP 날짜 및 시간 관련 함수

프로그래밍/PHP|2015. 1. 27. 11:28
반응형

checkdate()

 주어진 날짜가 타당한 날짜인지를 검사한다.

 date()

 날짜와 시간을 지정한 형식으로 출력한다.

 getdate()

 날짜와 시간에 대한 정보를 배열로 반환한다

 microtime()

 유닉스 형식의 시간을 100만분의 1초 단위로 반환한다

 mktime()

 지정한 날짜 및 시간을 유닉스 형식의 시간으로 반환한다.

 time()

 현재의 날짜 및 시간을 유닉스 형식의 시간으로 반환한다.

 

 

checkdate()

$valid_date=checkdate(9,31,2010);    //2010년 9월 31일이 올바른 값인지 검사. 9월은 30일까지입니다. 거짓

if($valid_date)  //거짓이므로 $valid_date에는 아무런 값도 없습니다.

{

echo "입력하신 날짜는 올바른 정보입니다.";

}

else              //else 구문이 실행됩니다.

{

echo "입력하신 날짜는 올바르지 않은 정보입니다.";

}

?>

 

date()

date()함수는 특정한 날짜와 시간을 지정한 형식으로 출력하는 함수.

연도

L

해당 연도가 윤년이면 1을 그렇지 않으면 0을 출력한다

 Y

연도를 네 자리수로 출력한다.(예.2005년의 경우 2005로 출력) 

 y

 연도를 두 자리수로 출력한다.(예.2005년의 경우 05로 출력)

 월

F

월을 영문자로 출력한다.(예.9월의 경우 September로 출력)

 M

 월을 세 자리 영문자로 출력낳다.(9월, Sep)

 m

 월을 두 자리 숫자로 출력한다.(9월, 09)

 n

1~9월까지는 9로 출력한다. 10월부터는 10,11,12

 t

 해당 월의 날짜 수를 출력한다.(예.9월의 경우30일을 출력

 일

 d

일자를 두 자리 숫자로 출력한다(01~31)

 j

 1~9까지는 한자리 수로 출력 나머지는 d와 동일

 l

 해당 일의 요일을 영문자로 출력한다.(목.Thursday)

 D

 해당 일의 요일을 세자리로 출력한다.(목,Thu)

 w

 해당일의 요일을 한자리 숫자로 출력한다.(일-0,월-1,화-2,수-3....)

 S

 두 글자로 된 영문 서수 접미사를 출력한다.(st,nd,rd,th)

 z

 해당 일자가 그 해의 몇번재 날인지를 출력한다. 첫번째 날은 0부터 시작한다.

 시간

시간을 12시간제 형식으로 출력. 이때 한자리수 시간은 한자리수로 출력 

 h

 시간을 12시간제 형식으로 출력. 두자리로 출력

 G

 시간을 24시간제 형식으로 출력. 0~9는 한자리로 출력

 H

시간을 24시간제 형식으로 출력. 모두 두자리로 출력

 a

 해당 시간에 따라 오전.오후를 가리키는 문자열 (am,pm)출력

 A

 해당 시간에 따라 오전,오후를 가리키는 문자열(AM,PM)출력

 i

 분을 두자리 숫자로 출력(00~59)

 s

 초를 두자리 숫자로 출력(00~59)

 날짜및시간

c

 ISO 8601형식의 날짜를 출력한다.

 r

 RFC2822형식의 날짜를 출력한다.

 u

 타임스탬프를 출력한다.

 

getdate()

"seconds"

초 정보(0~59)

 "minutes"

분 정보(0~59) 

 "hours"

시간 정보(0~23) 

 "mday'

월 정보(1~31) 

 "wday"

요일 정보(일-0, 월-1 ...) 

 "mon

월 정보(1~12) 

 "year"

연도정보(2010)

 "yday"

그해의 몇 번째 날인지 출력 첫째날은 0

 "weekday"

요일을 영문자로 출력(Thursday)

 "month

월 정보(September)

사용법

$currunt_time = time();  //현재 시간을 저장

$time_info = getdate($currunt_time); //현재 시간을 getdate()함수로 변환

 

foreach($time_info as $key => $value)

{

echo $key.":".$value."
";

}

echo $time_info["year"]."년".$time_info["mon"]."월";

?>

 

[출처] 위셀 (http://blog.naver.com/nableglobal/130097991729)

반응형

댓글()

iframe 내용의 크기의 따라 변경되는 화면

프로그래밍/PHP|2015. 1. 27. 11:28
반응형

이번내용은 iframe의 내용의 길어지는 경우 즉 내용의 많아 길게 늘어지는 경우를 말합니다

이런경우 withd 폭은 고정된 상태로 height의 길이만 길어질경우 전체적인 내용이 보이기 때문의

여러가지 응용적으로 사용가능한 부분이기도 합니다

 

페이지의 삽입될 자바스크립트를 이용 아이프레임을 응용합니다

 

<script>
var memobj = new Array();
function syncheight(obj){
 if(obj){
  if(obj.contentWindow.document.body.scrollHeight <= 100){
 obj.style.height="100";
 } else {
   obj.style.height=obj.contentWindow.document.body.scrollHeight+82;
 }
 }
 else{
  while(memobj.length>0){
   memobj[0].style.height=memobj[0].contentWindow.document.body.scrollHeight+82;
   memobj.shift();
  }
 }
}
function viewsmallframe(){
 var tmptr = event.srcElement.parentNode.parentNode.nextSibling;
 tmptr.style.display = tmptr.style.display=='none'?'':'none';
 
 memobj[memobj.length] = tmptr.cells(0).childNodes(0);
 memobj[memobj.length] = parent.document.getElementById('layerframne');
 setTimeout("syncheight()",1);
}
</script>
 

* 위에 +82 부분은 82픽셀만큼 세로공백을 추가한다는 뜻입니다.

   딱맞게 사용하시려면 +82를 삭제하시면 됩니다.

 

 

<iframe style="WIDTH: 100%" onload="syncheight(this)" marginheight="0" src="페이지" frameborder="0" name="layerframne" marginwidth="0" scrolling="no" nbsp="nbsp"></iframe>

 

어떤형식으로 응용하여 하용하느냐에 따라 변경될수 있습니다.

 

 

[출처] 옜다관심 | 옜다관심 (http://saymove.blog.me/80119111572)

반응형

댓글()

[php] file_exists 파일이 있는지 확인

프로그래밍/PHP|2015. 1. 27. 11:27
반응형

file_exists 파일이 있는지를 확인한다..

예제

<?php
$filename 
'/path/to/foo.txt';

if (
file_exists($filename)) {
    echo 
"있다";
} else {
    echo 
"없다ist";
}
?> 

[출처] 지극히 개인적인 블로그 | ossang's (http://artoflifei.tistory.com/46)


반응형

댓글()