Pichu Pokeball
본문 바로가기
카테고리 없음

PHP로 웹페이지 만들기

by campanula 2023. 11. 6.

HTML, CSS, JAVASCRIPT는 웹브라우저에서 동작하는 스크립트 언어.

PHP는 웹서버에서 동작하는 언어로 데이터베이스 등과 연동되어 회원관리, 게시판 등의 기능을 만드는데 사용가능.

 

Xampp프로그램

Apache + PHP +MariaDB 프로그램을 한번에 설치

 

Apache config(httpd.conf)에 Listen에 포트 번호 변경 가능

localhost:포트번호 => localhost:포트번호/dashboard

연결가능

 

C:\xampp\htdocs vscode에서 폴더 선택

control+, = 설정

설정 > php > settings.json

php.exe의 경로 설정
 "php.validate.executablePath": "C:\\xampp\\php\\php.exe"
 

확장에서 PHP Intelephense 설치

 

 

<?php
echo "333"
?>
 
화면에 333이 나옴
 

 

php기초 문법, 변수 표기법, 주석처리, 자바스크립트와 차이

<?php
이 안에다 구문 작성
?>

 

!+tab해서 html로 바꿈

    <?php
    echo "안녕하세요";
    ?>

문장이 끝난 후 반드시 ;

마지막에서는 빼도 되지만 그래도 쓴다라고 생각

    //변수
    $a =1;

변수에 $사인

let, const는 없음.

주석은 자바스크립트와 동일

 

 

변수의 범위, 지역변수, 글로벌 변수

php같은 경우 소스 보기를 해도 주석으로 처리된 내용이 보이지 않지만 (서버사이드 언어, 보안상 좋음) html의 경우 주석으로 처리된 내용이 보인다.

 

<?php
//xampp
/*웹서버, DB서버, PHP
Apache, Mariadb, PHP컴파일러
php.net*/

$txt="PHP";
echo "I LOVE $txt !";

#80포트 시 localhost만 입력해주면 된다.http://localhost/ = index.php

$txt1 = "안녕하세요";   //문자열
$x = 5; //정수
$y=10.5; //실수
$X=10;  

//변수는 대소문자를 구분한다.
echo "x= $x, X= $X";

//전역변수
//로컬변수(지역변수)

$x=5;

function myTest(){
    echo "변수 x의 출력값 $x";
    echo "<br>";
}

myTest();

echo "변수 x의 출력값 $x";
 
 

전역변수의 범위

 

function myTest(){
    global $x;
    echo "변수 x의 출력값 $x";
    echo "<br>";
}
 
global(전역변수)로 정의 해주면
 
I LOVE PHP !x= 5, X= 10변수 x의 출력값 5
변수 x의 출력값 5
 
제대로 출력
 
    $x++; 1증가
 
 
 
출력함수, 문자열 길이, 문자열 뒤집기, 문자열 찾기
<?php

echo "1";
print "2";

echo("3");
print("4");


?>
 
echo와 print는 동일함

 

 

<?php

echo "1";
print "2";

echo("3");
print("4");

echo "<h2>PHP는 재밌다.</h2>";
echo "Hello World! <br>";
echo "I'm about to learn PHP!<br>";


$txt1="Learn PHP";
$x=5;
$y=4;

//문자열 연결 연산자로 .사용
echo "<h2>".$txt1."</h2>";
echo $x+$y."<br>";

//var_dump로 형을 알수 있음.
$x1=3333;
var_dump($x);

$x2="한글"; //6bytes
var_dump($x2);

//문자열 bytes반환
$x_len = strlen("한글");
echo $x_len."<br>";

//단어 수 세기 한글x
echo str_word_count("hello world")."<br>";

//문자열 뒤집기
echo strrev("hello world")."<br>";

//위치 0부터 count, 보통 email @
$a = strpos("hello world", "world")."<br>";
echo $a;

$email = "aaa.gmail.com";

if(strpos($email,"@")){
    echo "이메일 형식에 맞음.";
}else{
    echo "이메일 형식이 잘못됨.";
}

?>
 

 

<?php

$str = "나는 자랑스러운 미국인이다.";

//str_replace("바꿀문자열","바뀔문자열","대상문자열");
$str1 = str_replace("미국인", "한국인",$str);
echo $str1."<br>";

//is_int 정수, is_float 실수
//is_numeric
//"3"일 때는 정수가 아닙니다로 나옴.
$x = 3;

var_dump(is_int($x));
if(is_int($x)){
    echo "x는 정수입니다."."<br>";
}else{
    echo "x는 정수가 아닙니다."."<br>";
}

//"3"도 숫자로 판단
$x2="3";

if(is_numeric($x2)){
    echo "숫자입니다."."<br>";
}else{
    echo "숫자가 아닙니다."."<br>";
}

echo(pi())."<br>";

echo(max(0,1,2,333,12,1));
?>
 
 

 

난수발생, 반올림, 절대값, 루트값, 상수, 파이

 

<script>
    const GREETING="안녕하세요!<br>"
    document.write(GREETING)

</script>


<?php
//abs() 절대값
$a=-33;
$b=abs($a);


//sqrt() 루트
$b1=sqrt(4);
echo $b1."<br>";

//round 반올림
$a2 = -2.75;
$b=round($a);
echo $b."<br>";

//rand() 난수 , 범위
$a3=rand(10,12);

echo $a3."<br>";

//define()

define("GREETING","안녕하세요");

//상수는 변경할 수 없음.
//Parse error: syntax error, unexpected token "=" in C:\xampp\htdocs\4.php on line 33
//GREETING="DDD";

echo GREETING."<br>";
?>
 

 

연산자

 

<?php
//PHP산술 연산자 +- /* 나머지 % **제곱
$a=2**3;
echo $a."<br>";


//php할당 연산자
$b = 5;
$a1 = $b;
$b--;
echo $b."<br>";


$y=10;
$x=5;

$x+=$y; //$x= $x+$y;

echo $x."<br>";


//비교 연산자 문자열과 숫자를 같게 판단
$a2 = 10;
$b2= "10";

if($a2 == $b2){
    echo "a2와 b2는 같다."."<br>";
}else{
    echo "a2와 b2는 다르다"."<br>";
}


$a3 = 10;
$b3= "10";

if($a3 === $b3){
    echo "a3와 b3는 같다."."<br>";
}else{
    echo "a3와 b3는 다르다"."<br>";
}

//!= 과 <>는 동일
var_dump($a3 != $b3);


//증감연산자 ++,--

//논리 연산자
//and, or, xor, &&, ||, !

$x=true;
$y=true;

//논리곱
var_dump($x and $y); //1*1 = 1
var_dump($x && $y); //1*1 = 1


$x=true;
$y=false;
var_dump($x and $y); //1*0=0


//논리합
var_dump($x or $y); //둘 중 하나만 true여도 true
var_dump($x || $y); //둘 중 하나만 true여도 true


//xor
var_dump($x xor $y); //두 개의 값이 다를 때 true 같을때 false

//문자열 연산자

$a="안녕";
$a .="하세요";

echo $a;
?>
 
 

<script>
    const arr1 = ["자동차", "비행기","요트"];
    const arr2 = [...arr1];

    arr1.pop();

</script>


<?php
//내장함수
//사용자 정의함수

/*
$money=3000;
//3번째 자리 ,
echo number_format($money);

function getString(){
    echo '구문';

    return 3;
}

$a = getString();

echo $a;

function addNumber($a, $b){
    return $a+$b;
}

echo "<h2>" . addNumber(3,5) . "</h2>";
echo "<h2>" . addNumber(13,5) . "</h2>";
echo "<h2>" . addNumber(3,15) . "</h2>";
echo "<h2>" . addNumber(23,5) . "</h2>";
*/
//declare 맨 처음에 정의되어야한다. 타입 제한
//declare(strict_types=1);

function addNumber1(int $a, int $b) : int{
    return $a+$b;
}

$c = addNumber1(5,4);
echo $c;

//배열
$car = array("자동차", "비행기", "요트");
$car2 = $car;

$car2[0] = "비행선";

print_r($car2);
print_r($car);


//print_r($_SERVER);

echo $_SERVER['PHP_SELF'];

$ag = $_SERVER['HTTP_USER_AGENT'];

if(strpos($ag, 'Chrome')){
    echo '크롬 유저시군요';
}else{
    echo '크롬 유저가 아니시군요';
}


echo "당신의 IP는 ".$_SERVER['REMOTE_ADDR']."입니다.";

print_r($_GET);

echo "name : ".$_GET['name'];
echo "<br>";
echo "company:".$_GET['company'];


echo "name : ".$_REQUEST['name'];
echo "<br>";
echo "company:".$_REQUEST['company'];

print_r($_POST);
print_r($_REQUEST);


?>

<a href="<?=$_SERVER['PHP_SELF']; ?>?a=b">b값을 가져오기</a>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form method="post" action="6.php" autocomplete="off">

        이름: <input type="text" name="name"><br>
        회사: <input type="text" name="company">
        <button>전송</button>
    </form>
</body>
</html>