php (22) 썸네일형 리스트형 PHP란? 서버쪽에서 실행되는 프로그래밍 언어로 주로 HTML코드를 프로그래밍적으로 생성한다. Personal Home Page Tool의 약자에서 Hypertext Preprocessor로 의미가 변경되었다. 개인 홈 페이지 도구 -> 하이퍼텍스트 전처리기 https://www.php.net/ PHP: Hypertext Preprocessor PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world. www.php.net PHP의 장점 웹에 최적화된 언어로 로직들이 함수의 형태로 미리 제공되어있다. 거의 모든 데이터베이스를 지원하며 PHP로 만들어진 공개소프트웨어가 가장 많다. https://standout.tistory.com/810 explode(), php 문자열을 구분 내장함수 explode() php 내장함수 문자열을 구분자에 따라 배열로 분할한다. explode(구분자, 저장할배열이름) 예시코드 $addlist = "apple,banana,orange"; $addlist_array = explode(",", $addlist); //결과 Array ( [0] => apple [1] => banana [2] => orange ) + JavaScript/Python에서는 split()라는 예약어를 사용한다. php .= 복합 대입연산자 .= php복합 대입연산자 변수의 기존값에 새로운 값을 더해서 다시 할당 하는것. $where = "name='John'"; // 초기 값 설정 $where .= " AND age=30"; // 새로운 값을 기존 값에 추가하여 할당 + JavaScript에서는 +=를 사용(Python, C++도 마찬가지) let name = "John"; name += " Doe"; // name은 "John Doe"로 업데이트됨 php 날짜와 시간 내장함수, date() date() php 내장함수 날짜와 시간과 관련된 작업을 수행할때 사용 현재 날짜/시간을 포맷팅할 수 있다. $dateYmd = date("Y-m-d"); echo $dateYmd; // 예: "2023-07-24" $datetime = date("Y-m-d H:i:s"); echo $datetime; // 예: "2023-07-24 15:30:45" + 다른 언어에서 관련 예약어는 JavaScript의 Date객체와 toLocaleDateString(), Python에서의 datetime모듈이 있다. php 조건삼항연산자, 조건 ? A:B 조건삼항연산자 참일때 앞, 거짓일때 뒷값이 출력된다. 조건 ? 참일 때 값 : 거짓일 때 값 예시코드 php $_SERVER["HTTP_REFERER"] : "올바른 접속이 아닙니다" $_SERVER["HTTP_REFERER"] 현재 페이지에 접근한 사용자이전페이지 url정보 !$_SERVER["HTTP_REFERER"] Referer정보가 존재하지않은 경우 = 직접url로 접근한경우 파라미터값에 의해 페이지가 include되는 설계에서 이전 url정보가 없거나 이전url이 동일하지않을경우 모두 '로그인없이' 직접적으로 url을 요청한것. 이를 조건으로 안내문구 출력 if(!$_SERVER["HTTP_REFERER"] || (str_replace($_SERVER["HTTP_HOST"],"",$_SERVER["HTTP_REFERER"]) == $_SERVER["HTTP_REFERER"]) ) { echo "올바른 접속이 아닙니다"; exit; } str_replace(), php 문자열을 바꾸는 함수 str_replace() php에서 문자열을 바꾸는 함수 기본적으로 원본문자열에서 특정부분을 찾아 다른 부분으로 바꾼다. str_replace(이것을찾아, 이것으로바꾼다, 여기서) 예시코드 $text = "I like apple!"; $new_text = str_replace("apple", "orange", $text); echo $new_text; // 출력: "I like orange!" exit, php내장함수: 즉시종료하라 exit 주로 조건문/에러 처리등 특정상황에서 종료해야할떄 사용한다. 스크립트 실행을 즉시종료하며 이후의 코드가 실행되지않음 if(!$_SERVER["HTTP_REFERER"] || (str_replace($_SERVER["HTTP_HOST"],"",$_SERVER["HTTP_REFERER"]) == $_SERVER["HTTP_REFERER"]) ) { echo "올바른 접속이 아닙니다"; exit; } list(), php에서 배열의 값을 변수에 할당하다 list(), php에서 배열의 값을 변수에 할당할때 사용 배열의 각 요소값을 각가의 변수로 분리하여 할당 할수 있다. 예를 들어, $row 데이터집합에서 each로부터 반환된 키와 값을 $key와 $value변수에 각각 할당할 수 있다. list($key, $value) = each($row) 예시코드 $row = array("name" => "John", "age" => 30, "city" => "New York"); // each() 함수를 사용하여 배열에서 요소의 키와 값을 분리하여 list() 함수로 할당 list($key, $value) = each($row); echo "키: " . $key . ", 값: " . $value; https://standout.tistory.com/813 eac.. each(), php에서 사용되는 현재 키와 값을 가져오는 함수 each() php에서 사용되는 현재 키와 값을 가져오는 함수, 배열의 다음요소를 순차적으로 접근 할 수 있다. 이는 php7.2버전부터는 더이상 사용하지않고 foreach루프나 current()함수를 사용해 배열을 반복하는것이 권장된다. 가진 배열이 끝나면 each()는 false를 반환한다. each(array $array): array|false 예시코드 $fruits 배열을 each()를 사용하여 key, value값을 추출할 수 있다. $fruits = array("apple" => 100, "banana" => 50, "orange" => 80, "grape" => 120); // each()를 사용하여 연관 배열의 요소 순차적으로 접근 while ($fruit = each($fruits)) .. $$, 변수변수 동적변수명 : php에서만 사용되는 특별한 문법 $$, 변수변수는 php에서만 사용되는 특별한 문법 다른 프로그래밍 언어에서는 이와 동일한 구문이 지원되지않는다. 헷갈릴 수 있으니 쉬운 예시로 이해해보자 $$는 fruit의 변수값 apple를 이용해 $apple변수에 접근해 해당 값을 출력한다. $fruit = "apple"; $apple = 100; echo $$fruit; // 출력 결과: 100 echo, 출력할 내용 echo php에서 사용되는 출력함수, 값을 화면에 출력할때 사용되어 웹페이지를 생성하거나 디버깅시 변수의 값을 확인하는등 유용한 활용이 가능하다. 기본적으로 값을 출력하기만 하며 반환값이 없다. // 문자열 출력 echo "Hello, World!"; // 변수 출력 $name = "John"; echo "My name is " . $name; // HTML 코드 출력 echo "This is a heading"; // '.'연산자 값 연결 $name = "John"; echo "My name is " . $name; https://standout.tistory.com/807 php에서 .는 chaining이 아니라고? 값을 연결해 출력하다 java에서는 . 하면 chaining이 생각난다. https.. php MySQL 쿼리 실행함수 : mysqli_connect, query, close MySQL 쿼리를 실행시키는 함수 mysqli_connect(호스트, 사용자명, 비밀번호, 데이터베이스명, 포트, 소켓); mysqli_query(mysqli_connect, sql); mysqli_close(mysqli_connect); 예시코드 $conn = mysqli_connect("127.0.0.1", "root", "1234", "test_db"); $delete_query = "DELETE FROM test_table WHERE seq > 1"; mysqli_query($conn, $delete_query); mysqli_close($conn) 실행결과를 배열로 반환한다, mysqli_fetch_array() mysqli_fetch_array() mysqli_query()의 실행결과에서 하나의 row를 배열로 반환한다. 더이상 가져올 행이 없다면 mysqli_query()는 NULL을 반환한다. 활용방법을 확인해보자. 데이터베이스를 연결하고 난뒤에 // MySQL 데이터베이스 연결 $connection = mysqli_connect("localhost", "your_username", "your_password", "your_database"); // 쿼리 실행 $sql = "SELECT id, name, age FROM users"; $result = mysqli_query($connection, $sql); 가져온 결과값을 mysqli_fetch_array로 각 내용을 출력할 수 있다. // 쿼리 결과 처.. php내장함수, 배열인가 아닌가 is_array() is_array()는 주어진 변수가 배열인지 확인하는 php 내장함수. // 배열로 예시 데이터 생성 $array_example = array(1, 2, 3, "hello", "world"); // 변수가 배열인지 확인 if (is_array($array_example)) { echo "변수는 배열입니다."; } else { echo "변수는 배열이 아닙니다."; } php에서 .는 chaining이 아니라고? 값을 연결해 출력하다 java에서는 . 하면 chaining이 생각난다. https://standout.tistory.com/806 chaining 체이닝, 체인을 걸듯 연결해 실행하다 메소드 여러개를 실행해야 될 경우에 사용된다. chaining 체이닝 연달아 체인을 걸듯 실행하다 Counter내의 main메소드에서 Counter 객체를 만들어 increment, decrement, getCount메소드를 한줄에 메소드체이닝 standout.tistory.com 그러나 php에서는 의미가 좀 다른데, 우선 php는 메서드 체이닝을 직접적으로 지원하지않아 .를 활용한 체이닝을 사용할 수 없다. php에서 체이닝이라 할수있는것이 있다면 아래와 같이 화살표함수를 활용해야 할 것이다. result = createCounter()-.. 특정 url에 따른 session 값변경, 페이지별 session 속성값 달리주기 아래의 코드는 현재 url이 /ams/webservice/에 있다면 userlevel 1, 아니라면 8을 준다. require과 include의 차이 require과 include의 차이는 if에서 나타난다. if($page_name == 'main'){include(파일명);} if($page_name == 'main'){require(파일명);} 위 코드에서 include는 if문의 조건이 true일때 실행되어 파일을 삽입하며 파일이 존재하지않거나 엑세스할 수 없는 경우 경고를 출력하고 스크립트실행을 계속한다. 반해 require는 if문의 조건에 만족하지않아도 필수적으로 파일을 삽입하며 파일이 존재하지않거나 엑세스할 수 없는 경우 에러를 발생시키며 스크립트실행을 중지한다. php 한파일에서만 에러출력 php 에러레벨을 건들이지않고 한 파일에서만 에러를 출력하고싶을때 제일 상단에 붙여넣기하자. https://standout.tistory.com/749 php error_reporting, Warning Notice 오류: 에러레벨 코드 추가 PHP, 오류레벨을 설정하지않으면 경고일뿐인데도 화면자체가 뜨지않는다. PHP설치경로로 이동 - php.ini - 에러레벨 코드 추가 -error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED - 확인 error_reporting = E standout.tistory.com php error_reporting, Warning Notice 오류: 에러레벨 코드 추가 PHP, 오류레벨을 설정하지않으면 경고일뿐인데도 화면자체가 뜨지않는다. PHP설치경로로 이동 - php.ini - 에러레벨 코드 추가 -error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED - 확인 error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED php 다운받기 php 5~최신 php 다운 https://windows.php.net/downloads/releases/archives/ windows.php.net - /downloads/releases/archives/ windows.php.net 이전 1 다음