$_SERVER

  • PHP 예약 변수 중 하나
  • 서버, 실행환경 정보를 담고 있는 배열

종류

변수 설명 값 예시
$_SERVER['HTTP_HOST']    
$_SERVER['HTTP_REFERER'] 리퍼러
(이전 웹페이지 주소)
 
$_SERVER['HTTP_USER_AGENT'] 사용자의 웹접속환경 정보 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36
$_SERVER['QUERY_STRING'] 쿼리 스트링 title=Main_page&action=raw
$_SERVER['REMOTE_ADDR'] 사용자의 IP 주소 135.79.246.80
$_SERVER['REQUEST_SCHEME'] URI 스킴 http
$_SERVER['REQUEST_URI'] 요청 URI. 이 페이지에 접근하기 위해 입력한 URI /index.html
$_SERVER['SCRIPT_FILENAME'] 파일자신의 CLI경로 /home/testuser/myfolder/hello.php
$_SERVER['SCRIPT_NAME']    
$_SERVER['SERVER_NAME'] 서버 이름 example.com
$_SERVER['SERVER_ADDR'] 서버 주소 135.79.246.80
$_SERVER['SERVER_PORT'] 서버 포트 80
$_SERVER['SERVER_PROTOCOL'] 페이지가 요청된 프로토콜 정보 HTTP/1.1
$_SERVER['SERVER_SOFTWARE'] 웹서버 정보 Apache
$_SERVER['PHP_SELF'] 파일자신의 웹경로
(또는 CLI경로)
/ex/php/hello.php

 

$_SERVER['PHP_SELF']

  • 현재 실행중인 파일(자신)의 경로 + 파일명을 담은 전역변수
  • 웹에서는 URL상의 경로가 출력됨
  • CLI에서는 접근한 경로가 그대로 출력됨
  • CLI에서는 $_SERVER['SCRIPT_FILENAME'] 과 동일한 값

 

 

 

출처 :

zetawiki.com/wiki/PHP_$_SERVER

zetawiki.com/wiki/PHP_$_SERVER(%27PHP_SELF%27)

 

'Web Programming Language > PHP' 카테고리의 다른 글

PHP) shell_exec() 함수  (0) 2020.11.05
PHP) system() 함수  (0) 2020.11.05
PHP) str_replace() 함수 : 문자열 치환 함수  (0) 2020.11.05
PHP) <?= ?> 태그  (0) 2020.11.05
PHP) move_uploaded_file() 함수  (0) 2020.11.03

str_replace() 함수 : 문자열 치환 함수

 

PHP에서 str_replace 함수는 사용자가 원하는 문장에서 특정 문자열을 치환해주는 함수입니다.

 

str_replace

 

str_replace 함수의 기본적인 사용법은 아래와 같습니다.

 

str_replace ( $search , $replace , $subject , $count );

 

 

여기서 각각의 인수는 아래와 같은 의미를 가집니다.

search 찾을 문자나 문자열 또는 그들을 담은 배열
replace 교체할 문자열
subject 교체 대상이 되는 문자열
count 교체된 문자열의 수를 반환

 

간단하게 문장으로 인수를 설명하자면, $subject 의 문장에서 $search 에 투입한 문자열을 찾아 $replace 에서 설정한 문자로 치환한다는 것입니다. $count 는 치환문 $search 의 개수를 반환해 줍니다. $count 는 선택적으로 사용할 수 있으며, 여기에는 변수를 넣어주어야 합니다.

 

예제

실제 사용 예제는 아래와 같습니다. apple 이라는 단어에서 p 를 b 로 바꾸는 작업을 하려고 합니다.

$s = 'p';
$r = 'b';
$word = 'apple';
str_replace( $s, $r, $word, $cnt );
echo $word; // abble
echo $cnt; // 2

 

 

 

++)

해당 함수의 사용법입니다.

str_replace(

     1번째 인수 : 변경대상 문자

     2번째 인수 : 변경하려는 문자

     3번째 인수 : 변수, replace가 바꾸고자 하는 문자열(변수 수)

)

 

 

그리고 쉽게 예제를 한번 만들어 보았습니다.

 

최대한 한눈에 들어오게 코딩을 해보았는데요

 

개발 이란 글자를 -> IT라고 바꾸는 방법을 알아보았습니다.

 

 

웹에서 확인한 결과입니다.

 

 

 

출처 :

triki.net/prgm/3946

https://gocoder.tistory.com/186 [고코더 IT Express]

 

 

'Web Programming Language > PHP' 카테고리의 다른 글

PHP) system() 함수  (0) 2020.11.05
PHP) $SERVER, $_SERVER['PHP_SELF']  (0) 2020.11.05
PHP) <?= ?> 태그  (0) 2020.11.05
PHP) move_uploaded_file() 함수  (0) 2020.11.03
PHP) 슈퍼전역 변수 $_FILES  (0) 2020.11.03

<?=      ?>  태그

<?php echo 내용;  ?>의 축약형.

 

 

영어명 한국어명 여는 태그 닫는 태그 설명
echo shortcut echo 단축 태그 <?= ?> 항상 사용 가능. 
<?php echo 내용; ?>의 축약형

 

 

<사용 예>

 

 

 

출처 :

zetawiki.com/wiki/PHP_%ED%91%9C%EC%A4%80_%ED%83%9C%EA%B7%B8,_%EC%A7%A7%EC%9D%80_%ED%83%9C%EA%B7%B8,_echo_%EB%8B%A8%EC%B6%95_%ED%83%9C%EA%B7%B8

move_uploaded_file()서버로 전송된 파일을 저장할 때 사용하는 함수입니다.

 

  • 업로드된 파일을 새 위치로 옮기는 함수
  • 첨부파일 포함한 HTML form을 PHP 파일에 제출(submit)하면 /tmp/phpXXXXXX 파일로 업로드됨
  • 이것을 원하는 위치($destination)로 이동시켜 사용
  • 파일이 이미 있을 경우 덮어쓰게 되므로 주의
  • 웹으로 접근가능한 경로로 이동할 경우 해킹 위험 있으므로 주의

 

bool move_uploaded_file ( string $filename , string $destination )

 $filename : 업로드된 파일명

 $destionation : 이동할 위치

 

 

 

파일업로드 전체를 살펴보는 것이 이해가 빠를거 같습니다.

 

 

2개의 파일로 구현을 해 봅시다.

 

이용자에게 파일을 선택하고 업로드를 할 수 있도록 하는 폼 페이지(ex. upload.html)가 필요하고, 폼에서 전송한 내용을 서버측 저장공간에 저장하는 기능을 할 파일(ex. upload.php)이 필요합니다.

 

 

 

body 태그 안에 아래 코드를 작성합시다.

 

 

<upload.html>

<form method="post" enctype="multipart/form-data" action="upload.php">
<input type="file" name="upload_file">
<input type="submit" value="업로드">
</form> 

 

 

업로드할 파일을 선택하고 '업로드'버튼을 클릭하면, 서버쪽 upload.php에 그 내용이 전달되도록 작성되어있습니다.

 

upload.php는 어떤 작업을 수행하는지 살펴보겠습니다.

 

 

<upload.php>

<?php

$file_name = $_FILES['upload_file']['name'];

$tmp_file = $_FILES['upload_file']['tmp_name'];

$file_path = './files/'.$file_name;

$r = move_uploaded_file($tmp_file, $file_path);

?> 

 

upload.html 의 form 태그를 이용해서 전송된 파일은 $_FILES를 통해 접근 가능합니다.

 

서버가 업로드받은 파일은 $_FILES['upload_file']['tmp_name']에 들어있습니다.

 

  • tmp_name => 업로드된 파일이 임시 저장되는 곳

 

이제 저장될 위치를 $file_path 로 설정하고, move_uploaded_file()함수를 위의 예처럼 실행시키면, 지정 위치에 업로드한 파일이 저장됩니다.

 

 

 

 

 

 



출처 :

https://zzaps.tistory.com/52 [궁극의 잡 블로그]

폼을 통해 파일을 업로드를 하게되면 슈퍼전역 변수인 $_FILES 변수를 통해 업로드 파일에 대한 정보를 가져올 수 있다.

$_FILES['업로드_파일폼명']['업로드_정보'];

업로드 파일폼명은 <input type="file" name="파일폼명" /> 태그상의 name이 들어간다.

업로드 정보는 연관배열로 반환이 되는데, 각 정보는 아래와 같다.

$_FILES['FileFormName'][array]

  • name => 업로드된 파일이름
  • type => 업로드된 파일타입
  • size => 업로드된 파일크기(BYTE)
  • tmp_name => 임시저장된 업로드 파일의 경로와 파일이름
  • error => 업로드 오류시 오류번호


각 업로드 파일마다 위와 같은 데이터를 갖는다.

파일이 업로드가 되면 우선 서버에 지정된 임시디렉토리에 파일이 저장되게 된다.

저장된 이후에 파일을 옮기지 않으면 스크립트 종료시 임시파일은 자동삭제 된다.

스크립트가 종료되기 전에 move_uploaded_file() 함수를 통해 새로운 위치로 파일을 옮겨주도록 한다.



파일을 업로드하다 오류가 나는 경우가 있다.

파일 오류가 나는 경우 $_FILES의 error 에 오류번호를 갖게 된다.

오류번호에 대한 내용은 아래와 같다.

업로드 오류(ERROR)시 내용

1: upload_max_filesize 설정값을 초과함 (php.ini의 설정, 업로드 최대용량)
2: MAX_FILE_SIZE 설정값을 초과함 (html form의 설정, 업로드 최대용량)
3: 파일 일부만 업로드 됨
4: 업로드된 파일이 없음
6: 사용가능한 임시폴더가 없음
7: 디스크에 저장할 수 없음
8: 파일 업로드가 중지됨
이외: 시스템 오류가 발생



출처 :

https://wttjj.tistory.com/89 [왕따짱의 사진과 프로그래밍]

'Web Programming Language > PHP' 카테고리의 다른 글

PHP) <?= ?> 태그  (0) 2020.11.05
PHP) move_uploaded_file() 함수  (0) 2020.11.03
PHP) magic_quotes_gpc 설정  (0) 2020.10.27
PHP) 세션 삭제 session_destroy( ) 함수  (0) 2020.10.27
PHP) session_start( ) 함수  (0) 2020.10.27

form 태그 / entype 속성

 

<소스코드 예>

<form id="fregisterform" name="fregisterform" method="post" enctype="multipart/form-data"> </form>

 

파일을 업로드 할때,

<form>태그에서 entype="multipart/form-data"라는 애트리뷰트를 반드시 써야한다.

 

 

그렇게 하지 않으면, 웹 서버로 데이터를 넘길때 파일의 경로명만 전송되고 파일 내용이 전송되지 않기 때문이다.

 

그리고 이때, method 애트리뷰트에는 'POST' 값을 지정해야 함

 

 

** <form>태그의 속성인 method, action, enctype 등은 입력받은 데이터를 어떻게 처리할 것인지 세부적으로 설정하는 데 사용한다.

 

  method는 전송 방식,

  action은 전송 목적지,

  enctype은 전송되는 데이터 형식을 설정.

 

 

** enctype

enctype 속성은 다음 세가지의 값으로 지정될 수 있다.

 

1. application/www-form-urlencoded

 

디폴트값이다. enctype을 따로 설정하지 않으면 이 값이 설정된다.

모든 문자열(폼데이터)은 서버로 전송되기 전에 인코딩된다.(공백은 "+"심볼로 변환되며, 특수문자는 ASCII 16진수로 변환된다.) 

 

2. multipart/form-data

 

파일이나 이미지를 서버로 전송할 경우 이 방식을 사용한다.

문자열이 인코딩되지 않는다. 이 속성은 보통 파일 업로드를 할 때 사용한다.

 

3. text/plain

 

이 형식은 인코딩을 하지 않은 문자 상태로 전송된다.

공백을 "+"심볼로 변환하며, 특수문자는 변환되지 않는다. 잘 사용되지 않는 속성이다.

 

 

 

출처 : 

xorms0707.tistory.com/29

m.blog.naver.com/PostView.nhn?blogId=kgw1988&logNo=220881043540&proxyReferer=https:%2F%2Fwww.google.com%2F

'Web Programming Language > HTML' 카테고리의 다른 글

<form> 태그  (0) 2020.10.26
div, id  (0) 2020.10.24
semantic 태그, non-semantic 태그, div, span  (0) 2020.10.24
<a> </a> 태그  (0) 2020.10.21
HTML) 목록(리스트)을 표현하는 태그 <ul>, <ol>, <li>, <dl>  (0) 2020.10.21

+ Recent posts