IT/web17 [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. [PHP] file_exists()에 공백이 포함되었을 때 해결 방안 file_exists()에 공백이 포함되었을 때 file_exists() 에 입력하는 경로가 공백을 포함하고 있다면 bool(false) 를 반환하는 문제가 있다. 파일의 경로에 공백이 없는게 최선이겠지만 그게 내 뜻 때로만 되면 얼마나 좋을까. 그래서 file_exists() 에 공백을 인식시키기 위해서 여러 방법들을 사용해봤지만 생각처럼 동작하지 않아 대안을 만들어서 file_exists() 를 사용하지 않고 대체하였다. // 기존 $result = file_exists(""); var_dump($result); // bool(false) // 대체 $result = (int)shell_exec("ls | wc -l"); var_dump($result); // int(1) shell_exec()와 l.. 2021. 12. 27. [PHP] shell_exec() 한글이 포함된 svn 이 동작하지 않을 때 해결 방안 shell_exec() 로 한글 경로가 포함된 svn 이 동작하지 않을 때 결론부터 얘기하면 shell의 locale 문제였다. shell에서 실행하면 shell에 설정된 locale에 따라 url encode 가 동작하니 당연히 정상으로 동작하고, web을 통해 실행하면 shell_exe()의 기본 환경(LC_CTYPE=C) 때문에 한글 경로가 오류 나는 것이었다. shell - locale 실행 결과 interm@interm-virtual-machine:~/www/public_html$ locale LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC=ko_KR.UTF-8 LC_TIME=ko_KR.UTF-8 LC_COLLATE="en_US.UTF.. 2021. 12. 27. [javascript] jquery multiple select 예제와 소스코드 공유 jquery multiple select jquery를 사용할 때 가장 많이 사용하는 기능은 아마 event bind(e.g. click, change..)와 selector 가 아닐까 싶다. 특히 다중의 attribute를 선택할 때 빈번하게 사용하는 기능의 샘플을 정리해본다. name_1 name_2 name_3 id_1 class_1 selector는 id(#)와 class(.)를 키워드로 지정할 수 있고 그 외의 태그에는 name을 사용하면 된다. 더욱 자세한 설명은 jquery api 문서를 참고하면 도움이 된다. https://api.jquery.com/category/selectors/ Selectors | jQuery API Documentation Select all elements th.. 2021. 12. 26. 이전 1 2 3 다음