변수가 존재한다는 가정 하에 (isset($var) === true) 변수의 값이 빈 문자열("") 이거나 빈 배열이면 거짓(false) 아니면 (true) 를 반환하는 함수를 작성한다.
웹 프로그래밍의 오랜 격언 중 하나는 사용자의 입력을 믿으면 안된다는 것이다. 고의가 아니더라도 잘못된 데이터를 서버로 전송하는 일은 흔하다. 이번 챕터에서는 사용자의 입력을 검증하거나 필요한 데이터만 추출하는 방법을 알아본다.
php 에는 문자열을 바꾸는 str_replace 라는 내장 함수가 존재한다. 다만 파라미터의 순서가 (예전 문자열, 바꿀 문자열, 전체 문자열) 형태여서 사용할 때 헷깔리기 쉽기 때문에 파라미터의 순서만 바꾼 string_replace 함수를 만들어 본다. function string_replace($input, $old_str, $new_str) { return str_replace($old_str, $new_str, $input); } var_dump(string_replace("안녕하세요.", "하세요", "히 가세요")); 위 코드를 string_replace.php 파일에 저장하고 브라우저에서 결과를 확인한다. string(20) "안녕히 가세요." string_replace 함수의 첫번째 파..
여러 줄을 잘라서 배열로 만들어주는 함수 string_splitlines 을 만든다. function string_splitlines($input) { return explode(PHP_EOL, $input); } $data = string(4) "요?" } PHP_EOL 은 End Of Line 의 약자로 줄바꿈 기호를 의미한다. 줄바꿈 기호는 OS 에 따라 \r\n, \r, \n 등으로 각자 다르다. 윈도우즈는 \r\n을 사용하고, 리눅스 계열은 \n을 쓴다. 맥 OS 9 버전까지는 \r을 사용했었다. PHP_EOL은 OS 에 따른 줄바꿈 기호를 리턴하는 내장 상수다. 따라서 OS에 따른 줄바꿈 기호 혼용 문제를 해결 가능하다. 즉, 윈도우즈에서는 \r\n, 리눅스 계열에서는 \n을 리턴한다.
php 에는 문자열을 특정 문자열로 잘라서 배열로 만들어주는 explode 라는 내장 함수가 존재한다. 다만 파라미터의 순서가 (분할문자열, 전체문자열) 형태여서 사용하기가 헷깔리기 쉽기 때문에 파라미터의 순서만 바꾼 string_split 함수를 만들어 본다. function string_split($input, $seperater) { return explode($seperater, $input); } var_dump(string_split("a,b,c,d,ef,ghi,j", ",")); exit(); 위 코드를 string_split.php 파일에 저장하고 브라우저에서 결과를 확인한다. array(7) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string..
php 에는 문자열이 특정 문자열을 포함하는지 확인하는 contains 함수가 없다. 따라서 직접 만들어 써야 한다. function string_contains($input, $value) { return mb_strpos($input, $value) !== false; } var_dump(string_contains("안녕하세요.", "녕하")); var_dump(string_contains("안녕하세요.", "하이")); 위 코드를 string_contains.php 파일에 저장하고 브라우저에서 결과를 확인한다. bool(true) bool(false) string_contains 함수의 첫번째 파라미터는 전체 문자열, 두번째 문자열은 포함하는 문자열이다. 아래의 예제는 "안녕하세요" 문자열이 "녕..