본문 바로가기

php19

[PHP] readdir을 활용한 파일 목록 읽기 예제, 파일 탐색기 readdir을 활용한 파일 목록 읽기 예제, 파일 탐색기 opendir, readdir, is_dir 함수를 사용하는 재귀 함수로 구성하였다. 디렉터리는 제외하고 파일만 조회하고 탐색된 전체 경로(full path)를 배열로 반환한다. 사용방법은 함수의 인자로 탐색할 경로를 명세하면 된다. https://github.com/muabow/home/tree/main/src/php/get_file_list GitHub - muabow/home: C/C++, PHP, GO source/library C/C++, PHP, GO source/library. Contribute to muabow/home development by creating an account on GitHub. github.com 소스코드 .. 2022. 1. 6.
[PHP] web shell 설명 및 예제 공유 web shell 설명 및 예제 공유 - web shell, 웹 쉘은 웹 페이지를 통해 shell을 사용하는 것을 의미한다. 보통 shell은 telnet, ssh 등 단말에 접속할 수 있는 프로토콜을 이용하여 접속하는데 개발 환경의 테스트, 현장 대응 등 여러 가지 이유로 백도어(backdoor, 개구멍)처럼 하나씩 숨겨놓기도 한다. web shell은 일반적인 서비스의 포트 스캐닝이나 별도의 검증 툴로 확인할 수 없기 때문에 오픈 되는 경우 문제의 인지를 할 수 없어 많은 사고를 야기한다. 그러므로 개발 중 테스트 또는 인증 절차를 통한 원격 지원용 정도로만 사용하자. https://github.com/muabow/home/tree/main/src/php/web_shell GitHub - muabow.. 2022. 1. 6.
[PHP] curl GET/POST Rest API 인증, 요청 및 JSON 응답 처리 방법 curl GET/POST Rest API 인증, 요청 및 JSON 응답 처리 방법 - php curl 요청(request) 및 응답(response)을 쉽게 처리할 수 있는 함수를 소개한다. php 에서 Rest API 서버에게 요청과 응답을 하기 위해 php curl 을 사용한다. php curl 사용 방법은 많지만 사용하기 쉽도록 함수를 만들어 보았다. php curl의 오류 검증, HTTP response 의 response code 검증, json decode 검증을 통해 정상적인 JSON response 데이터인지 검증한다. 그리고 오류 시 각 상황에 맞는 HTTP code의 message로 JSON 데이터를 구성한다. 사용 방법은 아래 소스 코드를 참고하자. https://github.com/.. 2022. 1. 6.
[PHP] top 또는 ps 에 보이는 php 프로세스명 변경 방법 top 또는 ps 에 보이는 php 프로세스명 변경 방법 - cli_set_process_title() 리눅스 환경에서 top 또는 ps 시 현재 실행 중인 프로세스 목록을 확인 할 수 있다. 그 중에 php로 실행된 파일들의 이름은 [php /.../exec.php] 처럼 php 가 어떤 파일을 실행시켰다. 라고 명세가 되어 이게 어떤 프로세스인지 구분하거나 프로세스명으로 제어하는 명령어를 사용하기 어렵다. 그래서 cli_set_process_title()을 사용하여 프로세스명을 변경하여 사용한다. 함수 정의 - top 및 ps 에서 보이는 프로세스의 이름을 변경한다. CLI에서만 동작한다. cli_set_process_title(string $title): bool 예제 코드 : 프로세스명 변경 미적.. 2022. 1. 5.
[PHP] php error 메시지 출력 방법 php error 메시지 출력 방법 php 같은 interpreter 언어들은 페이지의 호출과 동시에 해석을 시작하기 때문에 디버깅이 무척 어렵다. 특히 php는 server side 언어라서 모든 처리가 끝난 후 결과만 브라우저에 현시되기 때문에 왜 오류가 나는지, 어디서 오류가 나는지. 오류로 인해 화면이 백지로 나오는 경우도 다반사다. 그럴때는 브라우저에서 오류를 확인하기 위해 다음과 같은 코드를 php 페이지 가장 상단에 삽입하자. 자세한 내용은 다음 URL에서 확인할 수 있지만 예제 제공되는 함수와 옵션들을 보겠다. https://www.php.net/manual/en/function.error-reporting.php PHP: error_reporting - Manual I always cod.. 2021. 12. 31.
[PHP] array_walk_recursive와 배열 순회 탐색 소스코드 공유 array_walk_recursive, 배열 순회 탐색, 전체 경로 찾기 array_walk_recursive - 전체 배열을 포인터 위치와 상관없이 탐색한다. - 모든 요소에 콜백 함수를 사용할 수 있다. - 사용자가 정의한 함수를 재귀적 사용이 가능하다. 쉽게 얘기하면 인자로 주어진 배열을 구성하는 모든 요소의 마지막 key/value를 찾아내 준다. 그리고 각 요소에 대한 함수를 정의할 수 있다. nested json format처럼 구조적으로 단순 패턴화 할 수 없는 경우 사용된다. array_walk_recursive 포맷 array_walk_recursive(array|object &$array, callable $callback, mixed $arg = null): bool array_wal.. 2021. 12. 28.
[PHP] json_decode 설명과 예제 json_decode - json string을 data로 변환한다. string to object, array. 아래는 json string을 json object와 array로 decode 하는 예제이다. object(stdClass)#1 (3) { ["name"]=> string(6) "muabow" ["url"]=> string(26) "https://muabow.tistory.com" ["desc"]=> string(16) "한글과 공백" } muabow https://muabow.tistory.com array(3) { ["name"]=> string(6) "muabow" ["url"]=> string(26) "https://muabow.tistory.com" ["desc"]=> string(.. 2021. 12. 28.
[PHP] json_encode 설명과 예제 json_encode - data를 json string 으로 변환한다. array, object to json string. 아래는 array 를 json string 으로 encode 하는 예제이다. string(95) "{"name":"muabow","url":"https:\/\/muabow.tistory.com","desc":"\ud55c\uae00\uacfc \uacf5\ubc31"}" string으로 변환된 것을 확인 할 수있지만 역슬러시(\)가 포함되고 한글은 유니코드로 변경된 것을 확인할 수 있다. 특히 가장 중요한 출력 포맷을 지키지 않고 한줄로 string화 하여 출력되는데 우리는 이러한 문제를 encode flag 를 통해 해결할 수 있다. json_eoncde 포맷 json_enco.. 2021. 12. 27.