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