PHP 웹 프로그래밍
(PHP Web Programming)
유용한 PHP 함수
문양세
강원대학교 IT 대학 컴퓨터과학전공
문자열 저장
문자열 (String) (1/4)
유용한 PHP 함수들
$str = “PHP 문자열” ;
<?PHP
$str = “PHP 문자열” ; print $str . “<br>”;
?>
<?
$str = "PHP 웹프로그래밍 ";
문자열 출력
문자열의 특정 부분 출력
(string_ele.php)
strtoupper()
문자열 str 을 대문자로 변환한 뒤 , 변환된 문자열을 리턴
문자열 (String) (2/4)
유용한 PHP 함수들
strtolower()
문자열 str 을 소문자로 변환한 뒤 , 변환된 문자열을 리턴
string strtoupper (string str)
string strtolower (string str)
ucfirst()
문자열 str 의 첫 번째 문자를 대문자로 변환한 뒤 변환된 문자열을 리턴
문자열 (String) (3/4)
유용한 PHP 함수들
ucwords()
문자열 str 에서 각각의 단어마다 첫 번째 문자를 대문자로 변환한 뒤 문자열을 리턴
string ucfirst (string str)
string ucwords (string str)
문자열 함수 사용 예 (to_func.php)
문자열 (String) (4/4)
유용한 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);
URL (Uniform Resource Locator)
WWW 에서 원하는 ( 접근하고자 하는 ) 정보의 위치를 나타냄
URL 다루기 (1/3)
유용한 PHP 함수들
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)
유용한 PHP 함수들
var_dump()
파라미터로는 어떠한 형식 (mixed) 의 expression 도 사용할 수 있음
여러 개의 변수의 정보를 알고자 하는 경우에도 사용할 수 있음
void var_dump (mixed expression [, mixed expression [, ...]])
parse_str()
변수 str 에 저장된 문자열을 변수와 값의 형태로 변환
void parse_str (string str)
URL 다루기 (3/3)
유용한 PHP 함수들
URL 스트링 예제 (url_str.php)
<?
$str1 = "http://cs.kangwon.ac.kr/testurl.html?name=kim&age=28";
$str2 = parse_url ($str1);
var_dump ($str2);
print "<p>";
parse_str ($str2[query]);
print " 이름 : ".$name.", 나이 : ".$age."<br>";
?>
역순의 문자열
유용한 PHP 함수들
strrev()
주어진 문자열 str 의 순서를 반대로 바꾸고 그 바뀐 문자열을 리턴
예제 (strrev.php)
string strrev (string str)
<?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)
유용한 PHP 함수들
문자열 나누기 예제 (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)
유용한 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” 0 NULL
“\x0B” 11 VT
문자열 공백 지우기 (2/2)
유용한 PHP 함수들
공백 문자 지우기 예제 (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”;
?>
기타 문자열 함수
유용한 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)
유용한 PHP 함수들
getdate()
현재 시각 혹은 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)
유용한 PHP 함수들
getdate() 함수가 리턴하는 배열 ( 의 원소 )
항 목 의 미
seconds 초 minutes 분
hours 시간
mday 일 ( 달 기준 )
wday 숫자로 나타낸 요일 (0: 일요일 ~ 6: 토요일 ) mon 숫자로 나타낸 달
year 연도
yday 연도의 시작으로부터 날
weekday 문자로 나타낸 요일 ( 예 . “Friday”)
month 문자로 나타낸 달 ( 예 . “January”)
날짜 변환 (3/4)
유용한 PHP 함수들
gmdate()
현재 시스템의 GMT 시간을 리턴
format 에 따라서 날짜 또는 시간 등을 문자열로 리턴
timestamp 는 1970 년 1 월 1 일부터 특정시간까지의 기간을 초로 환산
mktime()
파라미터로 넘겨 받은 hour, minute, second, month, day, year 를 timestamp
string gmdate (string format [, int timestamp])
int mktime (int hour, int minute, int second, int month,
int day, int year [, int is_dst])
날짜 변환 (4/4)
유용한 PHP 함수들
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>”;
?>
윤년 계산
유용한 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)
print $year . “ 년은 윤년입니다 .<br>”;
else
문자열 숫자 (1/4)
유용한 PHP 함수들
두 정수 더하기 예제
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)
유용한 PHP 함수들
문자열 숫자의 예제 (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)
유용한 PHP 함수들
값 계산하기
급수를 이용하여 계산 (calc_pi.php)
) n (
n
( )
) n / ( ) / ( ) / ( ) /
(
2 2 2 2 112
21
15 12 4
12 3
12 2
12
12
<?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);
문자열 숫자 (4/4)
유용한 PHP 함수들
값 계산하기
급수를 이용하여 계산 (calc_pi.php)
) n (
n
( )
) n / ( ) / ( ) / ( ) /
(
2 2 2 2 112
21
15 12 4
12 3
12 2
12
12
<?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);
난수 발생시키기 (1/2)
유용한 PHP 함수들
mt_srand()
난수를 발생시키기 전에 seed 값을 지정
void mt_srand (int seed)
mt_rand()
난수를 생성
파라미터에 아무런 값도 주지 않으면 , 0 부터 RAND_MAX 까지의 숫자 중에서
int mt_rand (void)
int mt_rand (int min, int max)
난수 발생시키기 (2/2)
유용한 PHP 함수들
난수 발생 예제 (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>";
}
?>