유용한 PHP 함수들 Yang-Sae Moon Department of Computer Science Kangwon National University, Korea
문자열 (String) (1/4) 문자열 저장 문자열 출력 문자열의 특정 부분 출력 (string_ele.php) $str = “PHP 문자열”; 문자열 출력 <?PHP $str = “PHP 문자열”; print $str . “<br>”; ?> 문자열의 특정 부분 출력 (string_ele.php) <? $str = "PHP 웹프로그래밍"; print "str[4].str[5]: " . $str[4].$str[5] . "<br>"; ?>
문자열 (String) (2/4) strtoupper() strtolower() 유용한 PHP 함수들 strtoupper() 문자열 str을 대문자로 변환한 뒤, 변환된 문자열을 리턴 string strtoupper (string str) strtolower() 문자열 str을 소문자로 변환한 뒤, 변환된 문자열을 리턴 string strtolower (string str)
문자열 (String) (3/4) ucfirst() ucwords() 유용한 PHP 함수들 ucfirst() 문자열 str의 첫 번째 문자를 대문자로 변환한 뒤 변환된 문자열을 리턴 string ucfirst (string str) ucwords() 문자열 str에서 각각의 단어마다 첫 번째 문자를 대문자로 변환한 뒤 문자열을 리턴 string ucwords (string str)
문자열 (String) (4/4) 문자열 함수 사용 예 (to_func.php) <?PHP $str = “Apple Orange pEAr”; $str1 = strtoupper ($str); print $str1 . “<br>”; $str2 = strtolower ($str); print $str2 . “<br>”; $str3 = ucfirst ($str); print $str3 . “<br>”; $str4 = ucwords ($str); print $str4 . “<br>”; ?>
URL 다루기 (1/3) URL (Uniform Resource Locator) parse_url() 유용한 PHP 함수들 URL (Uniform Resource Locator) WWW에서 원하는(접근하고자 하는) 정보의 위치를 나타냄 parse_url() 문자열 url에 저장된 값을 배열에 scheme, host, path, query 형식으로 리턴 예: $url = “http://cs.kangwon.ac.kr/testurl.html?name=kim&age=28” scheme => http host => cs.kangwon.ac.kr path => /testurl.html query => name=kim&age=28 array parse_url (string url)
URL 다루기 (2/3) var_dump() parse_str() 유용한 PHP 함수들 var_dump() 파라미터로는 어떠한 형식(mixed)의 expression도 사용할 수 있음 여러 개의 변수의 정보를 알고자 하는 경우에도 사용할 수 있음 void var_dump (mixed expression [, mixed expression [, ...]]) parse_str() 변수 str에 저장된 문자열을 변수와 값의 형태로 변환 void parse_str (string str)
URL 다루기 (3/3) URL 스트링 예제 (url_str.php) <? $str2 = parse_url ($str1); var_dump ($str2); print "<p>"; parse_str ($str2[query]); print "이름: ".$name.", 나이: ".$age."<br>"; ?>
역순의 문자열 strrev() 예제 (strrev.php) 주어진 문자열 str의 순서를 반대로 바꾸고 그 바뀐 문자열을 리턴 string strrev (string str) 예제 (strrev.php) <?PHP $str = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”; $str1 = strrev ($str); print $str1 . “<br>”; ?>
문자열 나누기 (1/2) 유용한 PHP 함수들 substr() 문자열 str의 start+1 번째 문자부터 length 만큼의 문자열을 선택하고 그 선택된 부분 문자열을 리턴 두 개 또는 세 개의 파라미터를 가질 수 있음 예를 들어, substr ($str, 4)를 호출하면 문자열 $str의 5번째 문자부터 문자열의 끝 문자까지의 부분 문자열을 리턴 substr (“1234567890”, -5, 3)를 호출하면 “678”이 리턴 string substr (string str, int start [, int length])
문자열 나누기 (2/2) 문자열 나누기 예제 (substr.php) <?PHP $str = “1234567890 abcdefghijklmnopqrstuvwxyz”; $str1 = substr ($str, 2, 5); print $str1 . “<br>”; $str2 = substr ($str, 8, 5); print $str2 . “<br>”; $str3 = substr ($str, 12, 8); print $str3 . “<br>”; $str4 = substr ($str, -9, 8); print $str4 . “<br>”; ?>
문자열 공백 지우기 (1/2) rtrim() (equivalent to chop()) 유용한 PHP 함수들 rtrim() (equivalent to chop()) 문자열 str의 오른쪽에 있는 빈 공간을 삭제한 후 그 삭제된 문자열을 리턴 빈 공간에 속하는 문자 ltrim() : 왼쪽에 있는 빈 공간을 삭제 trim() : 문자열의 왼쪽과 오른쪽에 있는 빈 공간을 삭제 string rtrim (string str) 문자 ASCII 값 CHAR “ ” 32 Space “\t” 9 Tab (HT) “\n” 13 Newline “\r” 10 Return “\0” NULL “\x0B” 11 VT
문자열 공백 지우기 (2/2) 공백 문자 지우기 예제 (trims.php) <?PHP $str0 = “ Apple Banana Pear ”; $str1 = chop ($str0); print “start-” . $str1 . “-end<br>\n”; $str2 = rtrim ($str0); print “start-” . $str2 . “-end<br>\n”; $str3 = ltrim ($str0); print “start-” . $str3 . “-end<br>\n”; $str4 = trim ($str0); print “start-” . $str4 . “-end<br>\n”; ?>
기타 문자열 함수 nl2br(string str): 문자열의 줄 바꿈 문자(\n)을 <br> 태그로 변경 유용한 PHP 함수들 nl2br(string str): 문자열의 줄 바꿈 문자(\n)을 <br> 태그로 변경 array explode(string separator, string input[, int limit]) 문자열 input을 분리자(separator)에 따라 분리하여, 분리된 문자열을 배열로 반환 (limit은 배열의 원소 개수를 제한) implode(), join(): 문자열 배열을 하나의 문자열로 합침 int strcmp(string str1, string str2): 두 문자열을 비교하여, 같으면 0을, 다르면 양수(str1 > str2) 혹은 음수(str1 < str2)를 리턴 strcasecmp(): strcmp()와 같으나 대소문자를 구별치 않음 strlen(): 문자열의 길이를 리턴 (예: strlen(“hello”)는 5를 리턴) 기타 문자열 함수 문자열 내에서 문자열 찾기: strstr(), strchr(), strrchr(), stristr() 문자열의 위치 찾아내기: strpos(), strrpos() 문자열 대체하기: str_replace(), substr_repalce()
날짜 변환 (1/4) getdate() 예제 (date.php) 현재 시각 혹은 timestamp에 해당하는 날짜와 시간으로 변환하여 배열로 리턴 파라미터가 없으면 현재 시각을 리턴 예제 (date.php) array getdate ([int timestamp]) <? $seoul = getdate(); print "현재시간: ". $seoul[year] . "년 ". $seoul[mon] . "월 " . $seoul[day] . "일 " . $seoul[hours] . "시 " . $seoul[minutes] . "분 ". $seoul[seconds] . "초<br>"; ?>
날짜 변환 (2/4) getdate() 함수가 리턴하는 배열 항 목 의 미 seconds 초 minutes 분 hours 시간 유용한 PHP 함수들 getdate() 함수가 리턴하는 배열 항 목 의 미 seconds 초 minutes 분 hours 시간 mday 일 (달 기준) wday 숫자로 나타낸 요일 (0: 일요일 ~ 6: 토요일) mon 숫자로 나타낸 달 year 연도 yday 연도의 시작으로부터 날 weekday 문자로 나타낸 요일 (예. “Friday”) month 문자로 나타낸 달 (예. “January”)
날짜 변환 (3/4) gmdate() mktime() 현재 시스템의 GMT 시간을 리턴 유용한 PHP 함수들 gmdate() 현재 시스템의 GMT 시간을 리턴 format에 따라서 날짜 또는 시간 등을 문자열로 리턴 timestamp는 1970년 1월 1일부터 특정시간까지의 기간을 초로 환산 string gmdate (string format [, int timestamp]) mktime() 파라미터로 넘겨 받은 hour, minute, second, month, day, year를 timestamp 값으로 변환 is_dst는 입력한 시간대가 낮 시간대이면 1, 그렇지 않으면 0을 입력 int mktime (int hour, int minute, int second, int month, int day, int year [, int is_dst])
날짜 변환 (4/4) gmdate(), mktime() 사용 예제 (date_func.php) <?PHP $year = gmdate (“Y”); $mon = gmdate (“m”); $day = gmdate (“d”); $hour = gmdate (“g”); $min = gmdate (“i”); $sec = gmdate (“s”); $seoul = getdate (mktime ($hour+9, $min, $sec, $mon, $day, $year)); print “서울 시간: “ . $seoul[year] . “년 “ . $seoul[mon] . “월 “ . $seoul[day] . “일 “ . $seoul[hours] . “시 “ . $seoul[minutes] . “분 “ . $seoul[seconds] . “초<br>”; $paris = getdate (mktime ($hour+1, $min, $sec, $mon, $day, $year)); print “파리 시간: “ . $paris[year] . “년 “ . $paris[mon] . “월 “ . $paris[day] . “일 “ . $paris[hours] . “시 “ . $paris[minutes] . “분 “ . $paris[seconds] . “초<br>”; ?>
윤년 계산 윤년 계산 방식 윤년 계산의 예제 (leap_year.php) 연도가 400으로 나누어지면 윤년이다. 연도가 4로는 나눠지고 100으로 나눠지지 않으면 윤년이다. 윤년 계산의 예제 (leap_year.php) <?PHP $year = 2000; if (($year % 400) == 0) print $year . “년은 윤년입니다.<br>”; else if (($year % 4) == 0) { if (($year % 100) != 0) else print $year . “년은 윤년이 아닙니다.<br>”; } ?>
1E+12 문자열 숫자 (1/4) 두 정수 더하기 예제 PHP에서 숫자 표기의 한계를 12자리(혹은 14자리)로 제한했기 때문 계산 결과가 13자리의 수이기 때문에 자동적으로 숫자를 부동소수점 형식으로 변환 임의의 정밀도를 갖는 계산을 하기 위해 bcadd(), bcsub(), bcmul() 등의 함수를 사용 <?PHP $num1 = 999999999999; $num2 = $num1 + 2; print $num2 . “<br>”; ?> 1E+12
문자열 숫자 (2/4) 문자열 숫자를 다루는 계산 함수 유용한 PHP 함수들 문자열 숫자를 다루는 계산 함수 각 함수에서 scale은 소수점 아래 몇 번째 자리까지 계산할 지를 지정 string bcadd (string left, string right [, int scale]) string bcsub (string left, string right [, int scale]) string bcmul (string left, string right [, int scale]) string bcdiv (string left, string right [, int scale]) string bcmod (string left, string modulus) string bcsqrt (string operand [, int scale]) string bcpow (string operand, string exp)
문자열 숫자 (3/4) 문자열 숫자의 예제 (num_scale.php) <?PHP $num1 = “77777777777777777777777777777777777.5555555555555555555555555”; $num2 = “22222222222222222222222222222222222.4444444444444444444444444”; $value = bcadd ($num1, $num2, 20); print “bcadd(num1, num2, 20): “ . $value . “<br>”; $value = bcsub ($num1, $num2, 20); print “bcsub(num1, num2, 20): “ . $value . “<br>”; $value = bcmul ($num2, “2”, 20); print “bcmul(num2, \”2\”, 20): “ . $value . “<br>”; $value = bcdiv ($num2, “2”, 10); print “bcdiv(num2, \”2\”, 10): “ . $value . “<br>”; ?>
문자열 숫자 (4/4) 값 계산하기 급수를 이용하여 계산 (calc_pi.php) <?PHP function pi_func ($iteration, $scale) { $value = “0”; for ($i = 1; $i <= $iteration; $i++) if (($i % 2) == 0) $value = bcsub($value,bcdiv(12,bcpow($i,2),$scale),$scale); else $value = bcadd($value,bcdiv(12,bcpow($i,2),$scale),$scale); } $pi_value = bcsqrt ($value, $scale); print (“PI: “ . $pi_value . “<br>”); pi_func (10000, 50); pi_func (20000, 50); pi_func (30000, 50); ?>
난수 발생시키기 (1/2) mt_srand() mt_rand() 난수를 발생시키기 전에 seed 값을 지정 난수를 생성 유용한 PHP 함수들 mt_srand() 난수를 발생시키기 전에 seed 값을 지정 void mt_srand (int seed) mt_rand() 난수를 생성 파라미터에 아무런 값도 주지 않으면, 0부터 RAND_MAX까지의 숫자 중에서 하나의 값을 임의로 선택하여 리턴 파라미터에 min과 max를 주면, min부터 max 까지의 숫자 사이에서 하나의 값을 임의로 선택하여 리턴 int mt_rand (void) int mt_rand (int min, int max)
난수 발생시키기 (2/2) 난수 발생 예제 (rand_ex.php) <? mt_srand((double)microtime() * 1000000); for($i=0;$i < 10;$i++) { $random1 = mt_rand(); $random2 = mt_rand(1, 1000); print "random1 = ".$random1.", random2 = ".$random2."<br>"; } ?>