• 검색 결과가 없습니다.

유용한 PHP 함수

N/A
N/A
Protected

Academic year: 2021

Share "유용한 PHP 함수"

Copied!
26
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

PHP 웹 프로그래밍

(PHP Web Programming)

유용한 PHP 함수

문양세

강원대학교 IT 대학 컴퓨터과학전공

(2)

문자열 저장

문자열 (String) (1/4)

유용한 PHP 함수들

$str = “PHP 문자열” ;

<?PHP

$str = “PHP 문자열” ; print $str . “<br>”;

?>

<?

$str = "PHP 웹프로그래밍 ";

문자열 출력

문자열의 특정 부분 출력

(string_ele.php)

(3)

strtoupper()

 문자열 str 을 대문자로 변환한 뒤 , 변환된 문자열을 리턴

문자열 (String) (2/4)

유용한 PHP 함수들

strtolower()

 문자열 str 을 소문자로 변환한 뒤 , 변환된 문자열을 리턴

string strtoupper (string str)

string strtolower (string str)

(4)

ucfirst()

 문자열 str 의 첫 번째 문자를 대문자로 변환한 뒤 변환된 문자열을 리턴

문자열 (String) (3/4)

유용한 PHP 함수들

ucwords()

 문자열 str 에서 각각의 단어마다 첫 번째 문자를 대문자로 변환한 뒤 문자열을 리턴

string ucfirst (string str)

string ucwords (string str)

(5)

문자열 함수 사용 예 (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);

(6)

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)

(7)

URL 다루기 (2/3)

유용한 PHP 함수들

var_dump()

 파라미터로는 어떠한 형식 (mixed) 의 expression 도 사용할 수 있음

 여러 개의 변수의 정보를 알고자 하는 경우에도 사용할 수 있음

void var_dump (mixed expression [, mixed expression [, ...]])

parse_str()

 변수 str 에 저장된 문자열을 변수와 값의 형태로 변환

void parse_str (string str)

(8)

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>";

?>

(9)

역순의 문자열

유용한 PHP 함수들

strrev()

 주어진 문자열 str 의 순서를 반대로 바꾸고 그 바뀐 문자열을 리턴

예제 (strrev.php)

string strrev (string str)

<?PHP

$str = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”;

$str1 = strrev ($str);

print $str1 . “<br>”;

?>

(10)

문자열 나누기 (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])

(11)

문자열 나누기 (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>”;

(12)

문자열 공백 지우기 (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

(13)

문자열 공백 지우기 (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”;

?>

(14)

기타 문자열 함수

유용한 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()

(15)

날짜 변환 (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>";

?>

(16)

날짜 변환 (2/4)

유용한 PHP 함수들

getdate() 함수가 리턴하는 배열 ( 의 원소 )

항 목 의 미

seconds 초 minutes 분

hours 시간

mday 일 ( 달 기준 )

wday 숫자로 나타낸 요일 (0: 일요일 ~ 6: 토요일 ) mon 숫자로 나타낸 달

year 연도

yday 연도의 시작으로부터 날

weekday 문자로 나타낸 요일 ( 예 . “Friday”)

month 문자로 나타낸 달 ( 예 . “January”)

(17)

날짜 변환 (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])

(18)

날짜 변환 (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>”;

?>

(19)

윤년 계산

유용한 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

(20)

문자열 숫자 (1/4)

유용한 PHP 함수들

두 정수 더하기 예제

PHP 에서 숫자 표기의 한계를 12 자리 ( 혹은 14 자리 ) 로 제한했기 때문

 계산 결과가 13 자리의 수이기 때문에 자동적으로 숫자를 부동소수점 형식으 로 변환

 임의의 정밀도를 갖는 계산을 하기 위해 bcadd(), bcsub(), bcmul() 등의 함수 를 사용

<?PHP

$num1 = 999999999999;

$num2 = $num1 + 2;

print $num2 . “<br>”;

?>

1E+12

(21)

문자열 숫자 (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)

(22)

문자열 숫자 (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>”;

?>

(23)

문자열 숫자 (4/4)

유용한 PHP 함수들

 값 계산하기

 급수를 이용하여 계산 (calc_pi.php)

) n (

n

( )

) n / ( ) / ( ) / ( ) /

(

2 2 2 2 1

12

2

1

1

5 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);

(24)

문자열 숫자 (4/4)

유용한 PHP 함수들

 값 계산하기

 급수를 이용하여 계산 (calc_pi.php)

) n (

n

( )

) n / ( ) / ( ) / ( ) /

(

2 2 2 2 1

12

2

1

1

5 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);

(25)

난수 발생시키기 (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)

(26)

난수 발생시키기 (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>";

}

?>

참조

관련 문서

생각열기 신기한 과학 마술 알아보기 생각펼치기 오목렌즈와 볼록렌즈의 비밀.. 생각다지기 찰칵

hasSensorType String 차량 센서 Type을 표현. hasState String 클래스

indicated input stream fgets( char *s, int n, FILE *) Address of the string/NULL pointer. fputs() Writes the character string pointed to

indicated input stream fgets( char *s, int n, FILE *) Address of the string/NULL pointer. fputs() Writes the character string pointed to

(Key words) 반발계수, string tension, shaft의 stiffness, 상대속도, swing speed.. 이 경기에 대비하여 배드민턴에 대해 여러 가지로 알아보던 중, 배드민턴

Ø mass per unit length is constant; string is perfectly elastic and no resistance to bending.. Ø tension in string is sufficiently large so that gravitational forces may

activation(electroencephalolgram: left alpha wave, right alpha wave, left sensory motor rhythm, right sensory motor rhythm, right mid-beta wave, left attention concentration

Sizes of left and right pupils Intensities of left and right pupils Ellipse ratios of left and right