'분류 전체보기'에 해당되는 글 46건

  1. 2013.10.24 파일다운
  2. 2013.10.24 PHP 환경변수
  3. 2013.10.24 쿠키
  4. 2013.10.24 조건 반복문
  5. 2013.10.24 PHP 파일사용
  6. 2013.10.24 배열 변수
  7. 2013.10.24 PHP 연산자
  8. 2013.10.24 PHP Include
  9. 2013.10.24 설치된 PHP버전 확인
  10. 2013.10.24 투덜거릴만한곳이 없으니...

파일다운

PHP 2013. 10. 24. 17:01

<?
 include $_SERVER["DOCUMENT_ROOT"]."/include/lib.php";
?>
<?
// 9. 파일 이름과 실제 파일
$dir = $_SERVER["DOCUMENT_ROOT"]."/images";
$file_path = $dir."/a.jpg";
$original = "a.jpg";
$HTTP_USER_AGENT = $_SERVER[HTTP_USER_AGENT];

// 10.파일이 있으면
if (file_exists($file_path)) {

    // 11. 다운로드 헤더 만들기

    if(eregi("(MSIE 5.0|MSIE 5.1|MSIE 5.5|MSIE 6.0)", $HTTP_USER_AGENT))
    {
      if(strstr($HTTP_USER_AGENT, "MSIE 5.5"))
      {
        header("Content-Type: doesn/matter");
        header("Content-disposition: filename=$original");
        header("Content-Transfer-Encoding: binary");
        header("Pragma: no-cache");
        header("Expires: 0");
      }

      if(strstr($HTTP_USER_AGENT, "MSIE 5.0"))
      {
        Header("Content-type: file/unknown");
        header("Content-Disposition: attachment; filename=$original");
        Header("Content-Description: PHP3 Generated Data");
        header("Pragma: no-cache");
        header("Expires: 0");
      }

      if(strstr($HTTP_USER_AGENT, "MSIE 5.1"))
      {
        Header("Content-type: file/unknown");
        header("Content-Disposition: attachment; filename=$original");
        Header("Content-Description: PHP3 Generated Data");
        header("Pragma: no-cache");
        header("Expires: 0");
      }
    
      if(strstr($HTTP_USER_AGENT, "MSIE 6.0"))
      {
        Header("Content-type: application/x-msdownload");
        Header("Content-Length: ".(string)(filesize("$file_path")));
        Header("Content-Disposition: attachment; filename=$original");
        Header("Content-Transfer-Encoding: binary");
        Header("Pragma: no-cache");
        Header("Expires: 0");
       
      }


    } else {

      Header("Content-type: doesn/matter");  
      Header("Content-Length: ".(string)(filesize("$file_path")));
      Header("Content-Disposition: attachment; filename=$original");
      Header("Content-Description: PHP3 Generated Data");
      Header("Pragma: no-cache");
      Header("Expires: 0");

    }
    flush();

    // 12. 파일을 읽어 내보내기
    if (is_file($file_path)) {
        $fp = fopen($file_path, "rb");

        while(!feof($fp)) {
            echo fread($fp, 100*1024);
            flush();
        }
        fclose ($fp);
        flush();
    }
   

} else {
    echo $alert_header;
    alert("파일이 존재 하지 않습니다.");
}
?>
[출처: PHPer's Heaven  http://handsome.pe.kr/

'PHP' 카테고리의 다른 글

Class 사용법  (0) 2013.10.27
파일업로드 시 파일명 관리  (0) 2013.10.24
PHP 환경변수  (0) 2013.10.24
쿠키  (0) 2013.10.24
조건 반복문  (0) 2013.10.24
Posted by 초보용
,

PHP 환경변수

PHP 2013. 10. 24. 16:48

1. $_SERVER

서버와 관련된 기본 환경 변수의 배열
$_SERVER[알고싶은값] 의 형태로 사용한다.
알고 싶은 값에 들어가는 요소들에 따른 값
$_SERVER[SERVER_NAME] : 현재 호스트의 이름
127.0.0.1
$_SERVER[DOCUMENT_ROOT] : 현재 파일이 실행중인 document root 디렉토리 (웹으로 접속되는 루트)
D:/php/phpShop
$_SERVER[PHP_SELF] : document root 를 기준으로 한 현재 실행 파일 이름
/admin/index.php
$_SERVER[SCRIPT_FILENAME] : 현재 실행 파일의 절대경로
D:/php/phpShop/Admin/index.php

$_SERVER[SCRIPT_NAME] : 현재 실행 파일의 이름
/admin/index.php
$_SERVER[REQUEST_URI] : 현재 실행 파일을 사용한 URI (get 파라미터를 포함한다.)
/admin/?sep=name
$_SERVER[HTTP_REFERER] : 현재실행파일을 호출한 곳의 주소 (해당 파일로 링크가 연결된 주소)
$_SERVER[REMOTE_ADDR] : 접속한 사용자의 IP
$_SERVER["SERVER_PORT"] "


2. $_GET, $_POST

$_GET
get 방식으로 넘어온 변수들
$_POST
post 방식으로 넘어온 변수들


3. $_SESSION, $_COOKIE

$_SESSION
세션에 저장된 변수들
$_COOKIE
쿠키에 저장된 변수들


4. $_FILES

<input type="file" name="filename"> 을 통해 업로드된 파일의 정보

$_FILES['filename']['name'] : 파일명
$_FILES['filename']['type'] : 파일 타입
$_FILES['filename']['tmp_name'] : 업로드되어 임시 저장된 파일의 절대경로
$_FILES['filename']['error'] : 업로드 에러 코드
$_FILES['filename']['size'] : 파일 사이즈(bytes)


이외에도 많은 환경 변수들이 있으나 많이 사용하는 것들만 소개하였습니다.

아래 소스 처럼 $GLOBALS 를 출력하면 모든 환경변수들을 볼 수 있습니다.

<pre>
<?
print_r($GLOBALS);
?>
</pre>


[출처: PHPer's Heaven  http://handsome.pe.kr/

'PHP' 카테고리의 다른 글

파일업로드 시 파일명 관리  (0) 2013.10.24
파일다운  (0) 2013.10.24
쿠키  (0) 2013.10.24
조건 반복문  (0) 2013.10.24
PHP 파일사용  (0) 2013.10.24
Posted by 초보용
,

쿠키

PHP 2013. 10. 24. 16:31
쿠키는 저장하는 부분과 꺼내 사용하는 부분이 있습니다.

저장은 setcookie 란 함수를 이용하고 사용할때는 전역변수인 $_COOKIE 를 사용합니다.

setcookie(변수명, 변수값, 만료시간, 디렉토리, 도메인);

변수명 : 저장할 변수의 이름
변수값 : 저장할 변수의 값
만료시간 : 만료되는 시간을 Unix timetamp 값으로 설정 (없으면 브라우저 닫을때까지)
디렉토리 : 쿠키가 적용되는 서버내의 디렉토리 (없으면 /)
도메인 : 쿠키가 적용되는 도메인 명 (없으면 현재 도메인)
[setcookie() 기본 사용법]

위에서 가장 많이 사용하는 것은 세번째까지 입니다.

그러면 여기서 잠시 Unix Timestamp 에 대해 말씀드리겠습니다.

Unix Timestamp 는 1970년 1월 1일 0시 0분 0초를 기준으로 한 초단위 시간입니다.

즉 1970년 1월 1일 0시 0분 0초가 0, 그 후로 몇초가 지났는지를 표시하는것입니다.

현재의 Unix Timestamp 를 구할때는 time() 이라는 함수를 사용합니다.

이 외에 특정한 시간의 Unix Timestamp 를 구할때는 mktime() 이나 strtotime 등을 사용합니다.

쿠키를 꺼내 쓸때는 아래와 같이 사용하시면 됩니다.

$_COOKIE['변수명']

참 쉽죠~~~~잉!

자 그럼 쿠키를 이용해서 페이지가 바뀌어도 값을 표시하는 페이지를 만들어 보겠습니다.

<?
// 쿠키 내용 불러오기
$myname = $_COOKIE['myname'];

if($myname){
    echo "저장된 내 이름은 ".$myname." 입니다.<br/>";
}else{
    echo "저장된 내 이름이 없습니다.<br/>";
}
?>
<form name="fcookie" method="post" action="20_2.php">
내 이름은 ? : <input type="text" name="myname"> <input type="submit" value=" 확 인 ">
</form>
<br/>
<a href="./20_1.php">새로고침</a>

<?
$myname = $_POST['myname'];

if($myname){
    // POST로 넘어온 myname 이 있으면 myname 이란 변수로 30초 후까지 쿠키에 저장
    setcookie("myname", $myname, time() + 30);
    echo "내 이름이 ".$myname." 으로 저장되었습니다.<br/>";
}else{
    echo "내 이름이 저장되지 않았습니다.<br/>";
}
?>
<a href="./20_1.php">되돌아가기</a>


쿠키에 myname 이란 변수에 값이 있으면 저장된 이름을 표시합니다.

그리고 저장할 이름을 입력도 받습니다.

입력받은 이름을 20_2.php 로 넘겨 쿠키에 myname 으로 저장합니다.

쿠키에 저장이 되어 있으면 30초간 쿠키에서 myname 의 값을 꺼내 사용할 수가 있게 됩니다.

[출처: PHPer's Heaven  http://handsome.pe.kr/

'PHP' 카테고리의 다른 글

파일다운  (0) 2013.10.24
PHP 환경변수  (0) 2013.10.24
조건 반복문  (0) 2013.10.24
PHP 파일사용  (0) 2013.10.24
배열 변수  (0) 2013.10.24
Posted by 초보용
,

조건 반복문

PHP 2013. 10. 24. 13:42

if(조건){ }

else { }


for($i=1;$i<=5;$i++){
   
 }

while(조건){
  
}

'PHP' 카테고리의 다른 글

PHP 환경변수  (0) 2013.10.24
쿠키  (0) 2013.10.24
PHP 파일사용  (0) 2013.10.24
배열 변수  (0) 2013.10.24
PHP 연산자  (0) 2013.10.24
Posted by 초보용
,

PHP 파일사용

PHP 2013. 10. 24. 13:40

이제 본격적으로 파일을 사용하는 방법을 배워보도록 하겠습니다.

먼저 파일의 내용을 읽어서 화면에 출력하는 방법입니다.

<?
// 파일을 읽기로 연다.
$fp = fopen("./data/16_1.txt", "r");

// 파일의 내용을 1000자를 읽어와 $a 에 넣는다.
$a = fread($fp, 1000);

// $a를 출력
echo $a;

//파일을 닫는다.
fclose($fp);
?>


먼저 파일을 여는 함수 fopen 입니다.

fopen(파일명, 여는방법);

파일명 -  절대경로나 상대경로를 포함한 파일명

여는 방법 -
r     : 읽기 전용으로 엽니다. 파일 포인터를 제일 앞에 놓습니다.
r+   : 읽기 쓰기가 가능한 상태로 엽니다. 파일 포인터를 제일 앞에 놓습니다.
w   : 쓰기 전용으로 엽니다. 파일 포인터를 제일 앞에 놓습니다. 파일크기를 0으로 만듭니다. 파일이 없으면 만듭니다.
w+  : 읽기 쓰기가 가능한 상태로 엽니다. 파일 포인터를 제일 앞에 놓습니다. 파일크기를 0으로 만듭니다. 파일이 없으면 만듭니다.
a    : 쓰기 전용으로 엽니다. 파일 포인터를 파일의 끝에 놓습니다. 파일이 없으면 만듭니다.
a+   : 읽기 쓰기가 가능한 상태로 엽니다. 파일 포인터를 파일의 끝에 놓습니다. 파일이 없으면 만듭니다.

[fopen 사용법]

$fp = fopen("./data/16_1.txt", "r");
현재디렉토리 하위의 data 디렉토리에 있는 16_1.txt 파일을 읽기 전용으로 읽어 $fp 에 넣습니다. 이때 fp 에 저장된것은 일반적인 내용이 아니라 바로 출력 할 수가 없습니다.

$a = fread($fp, 1000);
파일 내용중 1000 자를 읽어 $a 에 넣습니다.

echo $a;
$a 를 화면에 출력합니다.

fclose($fp);
파일을 닫습니다.

이처럼 출력을 하였습니다.

그런데 줄바꿈이 안된것을 볼수 있습니다.

일반적인 문서에서 줄바꿈은 \n 이라는 보이지 않는 문자를 사용합니다. 이 문자는 화면상에서는 어떠한 동작도 하지 않기 때문에 줄바꿈 태그인 <br> 로 바꿔주어야 합니다.

이런 명령어가 nl2br() 함수입니다.

다음은 줄바꿈한 소스와 실행결과입니다.

<?
// 파일을 읽기로 연다.
$fp = fopen("./data/16_1.txt", "r");

// 파일의 내용을 1000자를 읽어와 $a 에 넣는다.
$a = fread($fp, 1000);

// $a를 출력
echo nl2br($a);

//파일을 닫는다.
fclose($fp);
?>


이번에는 파일을 열어 줄별로 읽어 표시하는 소스입니다.

<?
// 파일을 읽기로 연다.
$fp = fopen("./data/16_1.txt", "r");

// 파일의 끝이 아닐때는 $i 를 1부터 1씩 증가하면서 반복
for ($i=1;!feof($fp);$i++) {
    // 파일의 내용을 한줄씩 1000자를 읽어와 $a 라는 변수에 넣는다.
    $a = fgets($fp, 1000);

    // $a 를 출력한다.
    echo $i."번째 줄 : ".$a."<br/>";
}

//파일을 닫는다.
fclose($fp);
?>


16_2.php 에 사용한 fread 는 지정한 글자수 만큼 파일 전체에서 읽는 반면 여기서 사용한 fgets 는 지정한 글자수 만큼 한줄에서 읽어 옵니다.

그리고 feof 는 파일의 끝인지 아닌지를 true 나 false 로 결과를 알려주는 함수입니다.

이번에는 파일을 생성해서 내용을 적어 넣는 소스입니다.

<?
// 파일을 쓰기로 연다.
$fp = fopen("./data/16_2.txt", "w");

$a = "파일 내용 쓰기 예제";

// 파일에 $a를 적어 넣는다.
fwrite($fp, $a);

//파일을 닫는다.
fclose($fp);


// 파일을 읽기로 연다.
$fp = fopen("./data/16_2.txt", "r");


// 파일의 내용을 1000자를 읽어와 $a 에 넣는다.
$a = fread($fp, 1000);

// $a를 출력
echo $a;


//파일을 닫는다.
fclose($fp);
?>


fopen 시 파일이 없으므로 새로 만들게 됩니다.
fwrite 는 파일에 내용을 적어 넣는 함수 입니다. 위치는 파일에서의 위치(파일 포인터)에 적어 넣게 됩니다.

 

[출처: PHPer's Heaven  http://handsome.pe.kr/26

'PHP' 카테고리의 다른 글

쿠키  (0) 2013.10.24
조건 반복문  (0) 2013.10.24
배열 변수  (0) 2013.10.24
PHP 연산자  (0) 2013.10.24
PHP Include  (0) 2013.10.24
Posted by 초보용
,

배열 변수

PHP 2013. 10. 24. 13:34

배열정의 방법 1 (각 원소를 대입하여 정의하는 방법)

$arr['key1'] = "value1";
$arr['key2'] = "value2";
$arr['key3'] = "value3";


배열정의 방법 2 ( array() 문을 사용하여 키이름 없이 )

$arr = array("value1", "value2", "value3");

이런 방식으로 정의 하면 $arr[0], $arr[1], $arr[2] 로 정의가 되어집니다. 즉  키이름을 정의하지 않으면 0부터 1씩 증가하여 키이름이 정해집니다.

배열정의 방법 3 ( array() 문을 사용하여 키이름 까지 정의 )

$arr = array("key1" => "value1", "key3" => "value2", "key3" => "value3");

$arr['key1'] = "value1",  $arr['key2'] = "value2", $arr['key3'] = "value3" 로 정의되어 집니다.
=> 의 앞이 키, 뒤가 값이 되는 것입니다.

2. count 함수

count 함수는 배열의 원소의 개수를 알아내는 함수 입니다.

사용방법

count(배열변수);


 

<?
$arr = array("배열1", "배열2", "배열3");

echo count($arr);
?>



15_1.php를 호출하면 3을 출력합니다. 즉 배열변수 $arr 의 원소 개수가 3개라는것을 출력하는 것입니다.

3. print_r 함수

일반 변수들은 echo 를 통해 출력하였습니다. 그럼 배열은 어떻게 출력할까요?

배열은 print_r 함수를 이용하여 출력을 합니다.

사용방법

print_r(배열변수);


 

<?
$arr = array("배열1", "배열2", "배열3");

print_r($arr);
?>

 


[] 이 키, =>의  뒤가 값입니다.


4. explode 함수

위에서 배열변수에 대해 알아보았는데요. 그렇다면 특별한 규칙이 있는 문자열을 배열로 변환하고자 할때는 어떻게 해야할까요?

이럴때 사용하는 것이 explode 함수 입니다.

사용방법

explode(구분자 ,  문자열);


explode 는 문자열에서 특정한 구분자를 기준으로 문자열을 자르고 잘라진 것들을 배열로 만들어 주는 함수입니다.

만들어진 배열은 키가 0부터 갯수만큼 만들어집니다.

아래 소스를 보면서 설명드리겠습니다.

<?
$str = "사과,배,감,어린쥐";

$arr = explode("," , $str);

echo "배열 원소의 개수 : ".count($arr)."개<br/>";
echo "==========================<br/>";
echo "배열의 원소<br/>";
echo "==========================<br/>";
print_r($arr);
?>

 


위처럼 "사과,배,감,어린쥐" 문자열을 , 로 잘라서 배열로 만들었습니다.

5. implode 함수

explode 는 문자열을 구분자로 잘라 배열을 만들어 준다면 implode 는 그 반대의 일을 합니다.

즉 배열을 구분자를 사이에 두고 배열들의 값을 합쳐주는 일을 합니다.

사용방법

implode(구분자, 배열);


 

<?
$arr = array("사과","배","감","어린쥐");

echo "배열 원소의 개수 : ".count($arr)."개<br/>";
echo "==========================<br/>";
echo "배열의 원소<br/>";
echo "==========================<br/>";
print_r($arr);
echo "<br/>==========================<br/><br/>";

$str = implode("," , $arr);
echo "합쳐진 문자열<br/>";
echo "==========================<br/>";
echo $str;
?>


 


explode 의 반대로 배열을 , 를 구분자로 하여 값들을 합쳐진 것을 볼수 있습니다.

 

 

[출처: PHPer's Heaven  http://handsome.pe.kr/26

'PHP' 카테고리의 다른 글

조건 반복문  (0) 2013.10.24
PHP 파일사용  (0) 2013.10.24
PHP 연산자  (0) 2013.10.24
PHP Include  (0) 2013.10.24
설치된 PHP버전 확인  (0) 2013.10.24
Posted by 초보용
,

PHP 연산자

PHP 2013. 10. 24. 13:31
IF 문의 조건에 많이 쓰이는 것이 논리 연사자인데요. 오늘은 논리 연사자뿐만이 아니라 PHP에서 사용되는 연산자들에 대해서 알아보도록 하겠습니다.

1. 논리 연산자
 종류 사용예
설명

 and  a and b
 a 가 참이고 b 도 참일때 참

 or  a or b
 a 와 b 중 둘중에 하나가 참일때 참
 xor  a xor b
 a 와 b 중 둘중에 하나만 참일때 참

 not  !a  a 가 아닐때 참

 and  a && b
 a 가 참이고 b 도 참일때 참
 or  a || b
 a 와 b 중 둘중에 하나가 참일때 참

2. 비교연산자
 종류 사용예
설명

<  a < b
 a가 b보다 작으면 참

>
 a > b
 a가 b 보다 크면 참

<=  a <= b
 a가 b보다 작거나 같으면 참

>=  a >= b
 a가 b보다 크거나 같으면 참

==  a == b
 a와 b가 같으면 참

!=  a != b
 a와 b가 다르면 참

<>  a <> b
 a와 b가 다르면 참

===  a === b
 a와 b가 같으면 참
!==  a !== b
 a와 b가 다르면 참

3. 산술 연산자
 종류 사용예
설명

더하기  1 + 2
 결과값 : 3

빼기
 2 - 1
 결과값 : 1
곱하기
2 * 3
 결과값 : 6
나누기
4 / 2
 결과값 : 2
증가
$a++
 현재 $a 값에서 1 증가
감소
$a--
 현재 $a 값에서 1 감소
나머지
5 % 2
 결과값 : 1 (5를 2로 나눈 나머지)


4. 문자열 연산자
 종류 사용예
설명

합치기
$a.$b
 문자열 $a 와 $b를 합침
 $a = "안녕";
 $b = "하세요";
 $a.$b 는 "안녕하세요" 가 됩니다.


5. 대입 연산자
 종류 사용예
설명

=
$a = 3
 변수 a에 3을 대입

+=
$a += 3
 변수 a에 3을 더한 값을 $a에 대입 ($a = $a + 3)

-=
$a -= 3
 변수 a에 3을 뺀 값을 $a에 대입 ($a = $a - 3)
*=
$a *= 3
 변수 a에 3을 곱한 값을 $a에 대입 ($a = $a * 3)
/=
$a /= 3
 변수 a를 3으로 나눈 값을 $a에 대입 ($a = $a / 3)
%=
$a %= 3
 변수 a를 3으로 나눈 나머지값을 $a에 대입 ($a = $a % 3)
.=
$a .= $b
 변수a 의 문자열에 변수 b의 문자열을 합친 문자열을 변수 a에 대입
 ($a = $a.$b)

[출처: PHPer's Heaven  http://handsome.pe.kr/26

'PHP' 카테고리의 다른 글

조건 반복문  (0) 2013.10.24
PHP 파일사용  (0) 2013.10.24
배열 변수  (0) 2013.10.24
PHP Include  (0) 2013.10.24
설치된 PHP버전 확인  (0) 2013.10.24
Posted by 초보용
,

PHP Include

PHP 2013. 10. 24. 13:26

PHP Include는 절대경로를 지원하지 않는다.

<?
    include "./include/lib.php";
?>

 

하지만 필요할땐 이렇게 하면 된다.

<?
    include $_SERVER["DOCUMENT_ROOT"]."/include/lib.php";
?>

'PHP' 카테고리의 다른 글

조건 반복문  (0) 2013.10.24
PHP 파일사용  (0) 2013.10.24
배열 변수  (0) 2013.10.24
PHP 연산자  (0) 2013.10.24
설치된 PHP버전 확인  (0) 2013.10.24
Posted by 초보용
,

설치된 PHP버전 확인

PHP 2013. 10. 24. 13:21

<?
phpinfo();
?>

'PHP' 카테고리의 다른 글

조건 반복문  (0) 2013.10.24
PHP 파일사용  (0) 2013.10.24
배열 변수  (0) 2013.10.24
PHP 연산자  (0) 2013.10.24
PHP Include  (0) 2013.10.24
Posted by 초보용
,

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.