$_SERVER는 개발 작업을 할 때 쓰이지 않는 곳이 없을 정도로 널리 사용되고 있는 PHP에서 정해진 예약 변수입니다.
print_r($_SERVER)이나 var_dump($_SERVER)를 해보시면 아시겠지만 배열 형태로 되어 있습니다.

  • $_SERVER['HTTP_HOST']
    도메인 부분에 대당 합니다.
    테스트 서버 도메인과 실서버 도메인이 다를 때 $_SERVER['HTTP_HOST']를 사용하면 실서버로 이전 했을 때 별도의 작업이 필요 없습니다.
  • $_SERVER['PHP_SELF']
    도메인 뒤에 경로 입니다.
    https://google.com/shop/product.php
  • $_SERVER['QUERY_STRING'] 
    쿼리스트링 부분 입니다.
    예)?stx=abcd
  • $_SERVER['REMOTE_ADDR']
    접속된 사용자의 공인 아이피입니다.
  • $_SERVER['DOCUMENT_ROOT']
    httpd.conf 에 설정된 웹서버의 루트 디렉토리입니다.

조건에 따라서 다른 실행이나 변수에 담는 여러가지 행위를 할 때 보통은 if를 사용하는 경우가 있습니다.
때에 따라서는 switch가 더 클린한 코드를 만들수 있습니다.

*if

if($condition){
	$res = 1;
}else{
	$res = 2;
}

*switch

switch($condition){
	case "1" : $res = "1"; breack;
	case "2" : $res = "2"; breack;
}

물론 if도 짧게 가능 합니다.

if($condition) $res = 1;
else $res = 2;

혹은 삼항 연산자도 가능합니다.

$res = ($condition) ? 1 : 2;

사용자 정의 함수에 값을 가져 오는 방법은 여러가지가 있습니다.

function inside(){
	$month = "12";
	return $month;
}

위의 사용자 정의 함수는 inside를 실행하면 12가 있습니다.

$prefix = "month : ";
function inside($prefix){
	$month = "12";
	return $prefix.$month;
}

인자 값으로 $prefix의 값을 넣을수 있습니다.
인자 값에는 문자열뿐만 아니라 배열도 가능 합니다.

$prefix = array("year", "month", "day");
function inside($prefix=array()){
	$month = "12";
	return $prefix[0].$month;
}

인자 값과는 별도로 글로벌로 가져 올려면 아래와 같습니다.

$prefix = "month : ";
function inside(){
	global $prefix;
    
	$month = "12";
	return $prefix.$month;
}

'tech > PHP' 카테고리의 다른 글

자주 사용하는 $_SERVER  (0) 2023.12.04
또 다른 조건문 switch  (1) 2023.10.25
문자 변환, 변경, 치환  (0) 2023.10.22
PHP의 데이터 타입(data type)  (0) 2023.10.20
자바스크립트에는 없는 PHP 연관 배열  (0) 2023.10.19

PHP에서 문자 변경이나 치환, 공백 처리 할 때 str_replace를 사용 합니다.

<?php
echo str_replace("world","Peter","Hello world!");
?>

실행을 하면 Hello world!가 Hello Peter로 변경되어 있습니다.

1. 스트링(String)

<php
$hello = "hello world";
$hello2 = 'hello world';
echo $hello;

싱글 쿼트, 더블 쿼트 모두 스트링 타입입니다.

2. 인티저(Integer)
음수와 0, 양수입니다.(-2,147,483,648~2,147,483,647)

$number = "12";
echo (int)$number;

(int)를 추가하면 int형으로 캐스팅 됩니다.(형변환)

3.플로트(Float)

$float = 11.2;

4. 불리언(Boolean)

$check = true;
$check = false;

5. 배열(Array)

$arrays = array();

6. 객체(Object)

$color = new color("black", "white");

7. NULL

$is_null = null;

자바스크립트에서는 연관 배열이 없기 때문에 배열은 index와 index의 값을 가질수 있습니다.

var shopping = ["bread", "milk", "cheese", "hummus", "noodles"];
console.log(shopping);

연관 배열 처럼 할려면 javaScript에서는 Object를 사용해야 합니다.


아래는 PHP 배열 입니다.

$association = array("val" => 1, "txt" => "연관배열");
$association = array(
	array("val" => 1, "txt" => "연관1"),
	array("val" => 2, "txt" => "연관2"),
);

 

'tech > PHP' 카테고리의 다른 글

문자 변환, 변경, 치환  (0) 2023.10.22
PHP의 데이터 타입(data type)  (0) 2023.10.20
글자 길이가 길 때 글자 줄이는 방법(...)  (0) 2023.10.18
filter_var 숫자(int) 체크  (0) 2023.10.16
특정 날짜의 요일 구하기  (0) 2023.10.07
$str = "글자가 깁니다.글자가 깁니다.글자가 깁니다.글자가 깁니다.글자가 깁니다.";
$s_all = mb_substr($str, 0, 30, 'utf-8');
$suffix = "...";
if(strlen($s_all) >= strlen($s_all)) $suffix = "";
echo $s_all.$suffix;

보통은 텍스트가 길 때 ... 처리를 하게 되는데, 가끔 PHP에서 해야 할 때가 있습니다.
이런 경우 사용하면 됩니다.

문자형인지 숫자형인지 체크하는 방법은 여러가지가 있습니다.

1. is_integer
2. is_int(1번의 alias)
3. filter_var

소개할 것은 filter_var 입니다.
filter_var는 int를 체크하는 용도뿐만이 아니라 filter를 이용해서 여러가지 사용법이 있습니다.
FLOAT 체크 : FILTER_VALIDATE_FLOAT
이메일 체크 : FILTER_VALIDATE_EMAIL
URL 체크 : FILTER_VALIDATE_URL
MAC 어드레스 체크 : FILTER_VALIDATE_MAC

이 외에도 몇 가지가 있습니다.
(참고 URL : https://www.php.net/manual/en/filter.filters.validate.php)

<?php
$int = 0;

if (filter_var($int, FILTER_VALIDATE_INT)!== false) {
    echo("Variable is an integer");
} else {
    echo("Variable is not an integer");
}
?>

*https://www.w3schools.com/php/filter_validate_int.asp

년월일로 요일 구하는 함수

<?php
function get_yoil($date){
	$arr = array("일", "월", "화", "수", "목", "금", "토");
	return $arr[date("w", strtotime($date))];
}

echo get_yoil("2022-10-08");

date("w") : 요일의 숫자 표현 입니다.

0 : 일요일
6 : 토요일

입력 받은 변수 값이 영문, 숫자만으로 되어 있는지 체크

<?php
if(preg_match('/^[a-zA-Z0-9]+$/', $nickname)){
	//올바른 닉네임 규칙
}else{
	//영문, 숫자 외에 다른 문자가 포함된 닉네임이 있을 때
}

 

'tech > PHP' 카테고리의 다른 글

filter_var 숫자(int) 체크  (0) 2023.10.16
특정 날짜의 요일 구하기  (0) 2023.10.07
템플릿 언더바의 루프문(loop) #2  (0) 2023.10.03
템플릿 언더바(Template Underscore) #1  (0) 2023.10.02
LG xpay 결제 모듈 연동 모바일  (0) 2018.03.19

+ Recent posts