카테고리 없음

PHP로 웹페이지 만들기

campanula 2023. 11. 6. 13:34

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>