댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
PHP
2015.06.30 17:08
PHP 문자열 다루기
조회 수 27119 댓글 0
strstr(문자열, 찾을 문자) 찾을 문자열이 나온 처음 위치부터 끝까지 반환. $temp = '오늘도;달린다'; $tmp = strstr($temp , ';'); 출력 : 달린다 stristr(문자열, 찾을 문자) strstr과 달리 대소문자를 구별하지 않는다. 만약 찾을 문자가 존재하지 않을 경우, FALSE를 반환한다. // ';' 기호가 있는 문장은 제외할 것 if(stristr($temp, ';') == FALSE) fwrite($syn0, $temp."\t".$temp."\n"); else echo($temp . "<br/>"); strchr(문자열, 찾을 문자) strstr() 과 동일 strrchr(문자열, 찾을 문자) 찾을 문자가 마지막으로 나온 위치부터 끝까지 반환 strrpos(문자열, 찾을 문자) 찾을 문자가 마지막으로 나타나는 위치를 정수형으로 반환 strlen(문자열) 문자열의 길이를 반환 $str = 'abcdef'; echo strlen($str); // 6 $str = ' ab cd '; echo strlen($str); // 7 :띄어쓰기도 포함 한다 strtr(문자열, 원래 문자, 바꿀문자) 문자열에서 특정 문자를 새로운 문자로 바꾼다. 만약 바꿀 문자가 없을 경우, FALSE를 반환한다. $trans = array("h" => "-", "hello" => "hi", "hi" => "hello"); echo strtr("hi all, I said hello", $trans); 출력 : hello all, I said hi 붉은색은 자주 쓰는 함수 ○ trim(); ○ substr(); 1.addslashes(문자열) :문자열이 작은따옴표나 큰따옴표 또는 역슬래시 같은 문자를 담고 있을 경우 이 문자 앞에 역슬래시 문자를 추가하여 준다. 데이터베이스 질의어 사용시 따옴표 같은 문자의 중복으로 인한 오류를 피하기 위해 사용한다. 2.stripslashes(문자열) :역슬래시 처리가 된 문자에서 역슬래시를 제거하여 원상태로 되돌린다. 3.htmlspecialchars(문자열) 사용자가 HTML 코드를 포함하는 문자열을 입력 전송했을 때 이 HTML 코드를 HTML 형태가 아닌 문자열 그대로 출력해 준다. <textarea name=comment cols=50 rows=10></textarea> 텍스트 폼 안에 <a href="http://www.daum.net">이승혁</a> 를 입력한 후 전송했을 때 결과 echo $comment; // 이승혁 echo htmlspecialchars($comment); // <a href="http://www.daum.net">이승혁</a> php.ini 중 magic_quotes_gpc 항목이 on일 경우: <a href=\"http://www.daum.net\">이승혁</a> 로 출력된다. 4.nl2br(문자열) :사용자가 입력한 문자열을 사용자가 입력한 그대로 줄바꿈 처리해 준다. 5.echo(문자열) :입력한 문자열을 출력한다. 6.print() :입력한 문자열을 출력한다. 7.sprintf(형식,변수) :문자열을 지정한 형식으로 반환한다. $a=18.2; $b=7.4 sprintf("%03.2f - %0.2f", $a, $b) //025.6-10.08 : 뒤에 문자들을 처음 인자에 차례로 대입 %d:정수 %04d:네 자리로 출력하되 빈 공간은 0으로 채운다 %f:부동소수 %'x4.2f : 실수를 네 자리로 출력하되 빈 공간은 x로 채우고, 소수점 이하 2자리 출력 0 이외의 문자는 문자 앞에 '를 붙여준다. 8.printf (형식,변수) :지정한 형식대로 문자 출력. sprintf()와 같다. 9.explode(구분자, 문자열 , [배열의 최대크기]) :문자열을 지정해 준 구분자로 분리하여 배열에 저장한다. ex1: $fruit="사과-귤-감-오렌지"; $name=explode("-", $fruit); //"$name[0]=사과 , $name[1]=귤, $name[2]=감, $name[3]=오렌지" 가 입력된다. ex2: $name=explode("-", $fruit, 3); //$name[0]=사과, $name[1]=귤, $name[2]=감-오렌지 배열최대크기가 3이므로 마지막 3번째 배열에 남은 모든 배열 값이 저장된다.(구분되지 않은채) 10.implode(구분자,문자열) explode()와 반대의 기능으로 각 배열을 구분자로 연결하여 하나로 출력한다. 11.join (구분자, 문자열) :implode()와 동일한 기능을 수행 12.split (패턴, 문자열, [배열의 최대크기]) :explode()함수와 비슷한 기능을 하지만, 구분자 대신 정규 표현식을 사용하여 좀 더 정교하게 문자열을 분리할 수 있다. 13.strcmp(문자열1, 문자열2) :두 개의 문자열을 비교하여 일치하면 0, 일치하지 않으면 앞문자가 크면 1, 뒷문자가 크면 -1 반환 14.substr(문자열, 시작위치값, [추출할 길이]) :문자열의 일부를 추출할 때 사용한다. 시작 위치값: 양수이면 앞에서부터 음수이면 뒤에서 부터이다. 앞에서부터일 경우는 0, 뒤에서부터일 경우는 1부터 시작한다. 추출할 길이:음수이면 추출한 결과값에서 문자열의 끝에서 그 길이만큼을 잘라낸다. 생략시 지정한 시작 위치값부터 끝까지 추출한다. substr("abcdefg", 1, 3) //bcd substr("abcdefg", -3) //efg substr("abcdefg", -3, -2) //e substr("abcdefg", 1, -3) //bcd substr("abcdefg", -6, -1) //bcdef 15.strstr(문자열, 찾고자하는 문자열) :전체 문자열에서 찾고자하는 문자열이 처음 나온 위치부터 끝까지 반환한다. $email = 'user@example.com ' $domain = strstr($email, '@'); echo $domain; // @example.com 을 출력. 16.stristr(문자열, 찾고자하는 문자열) :strstr()은 대소문자를 구별하지만 이 함수는 대소문자를 구분하지 않는다. 17.strchr(문자열, 찾고자하는 문자열) :strstr() 함수의 별칭으로 strstr() 함수와 완전히 동일하다. 18.strrchr(문자열, 찾고자하는 문자열) :전체 문자열을 검사하고 찾고자 하는 문자열이 마지막으로 나타나는 위치부터 끝까지 반환 19.strpos(문자열, 찾고자하는 문자열, [검색시작위치값]) :검색 대상 문자열이 처음으로 나타나는 위치를 정수형으로 반환한다. 20.strrpos(문자열, 찾고자하는 문자열) :검색 대상 문자열이 마지막으로 나타나는 위치를 정수형으로 반환한다. 21.strlen(문자열) :문자열의 길이를 반환한다. 22.strtolower(문자열) :문자열을 소문자로 바꿔준다. 23.strtoupper(문자열) :문자열을 대문자로 바꿔준다. 24.ucfirst(문자열) :문자열의 첫 글자를 대문자로 바꾼다. 25.ucwords(문자열) :문자열의 각 단어의 첫 글자를 대문자로 바꾼다. 26.strrev(문자열) :문자열의 순서를 정반대로 바꾼다. 27.strtr(문자열, 원래 문자, 치환하고픈 문자) :문자열에서 특정 문자를 새로운 문자로 바꾼다. ex) $str="a blue angel of Hyper world"; strtr($str, "angel", "seagull"); //a blue seagu of Hyper world :5자리만 치환되고 나머진 무시 strtr($str, "angel", "sea"); // a blue seael of Hyper world :3자리만 치환되고 나머진 원래 문자 그대로 ex) $str="What a wonderful day"; $arr=ary("wonderful"=>"nice", "day"=>"night"); strtr($str, $arr) //What a nice night : 배열 사용시 키에 해당하는 문자를 배열의 값으로 모두 치환한다. 28.str_replace(원래문자, 치환하고픈 문자, 문자열) strtr()과 유사하나, 자리수를 따지지 않고 모든 문자를 그대로 치환한다. ex) $str=a blue angel of Hyper world str_replace("angel", "seagull", $str); //a blue seagull of Hyper world 29.chop(문자열) :문자열 뒷부분의 공백을 제거한다. 30.trim(문자열) :문자열 앞 뒤의 공백을 모두 제거한다. 31.ltrim(문자열) :문자열 앞 부분 공백을 제거한다. 32.rtrim(문자열) :문자열 뒷 부분 공백을 제거한다. 33.quotemeta(문자열) :메타 문자 앞에 역슬래시 문자를 붙여 반환한다. 메타문자로 취급하는 문자: . \\ + * ? [ ^ ] ( $ ) 34.ord(문자열) :문자열의 첫 번째 문자에 대한 아스키 코드값을 반환한다 35.chr(아스키코드값) :아스키 코드값에 해당하는 문자를 반환한다. 36.parse_str(문자열) :GET 방식으로 넘어오는 변수들을 따로 저장할 수 있다. ex) $str="page_num=1&key=php&keyoword=subject"; parse_str($str); //page_num=1, key=php, keyword=subject 가 저장 37.strip_tags(문자열, [허용할 태그]) :인자로 전달받은 문자열에서 HTML과 PHP 태그를 모두 제거한 문자열을 반환한다. 38.ob_start() 출력버퍼링을 사용할 수 있도록 한다. 39.ob_get_contents() :출력 버퍼에 저장되어 있는 내용을 반환한다. 40.ob_end_flush() 출력 버퍼에 저장되어 있던 내용을 비우고 출력 버퍼링 기능을 해제한다. 41.ob_end_clean() :출력 버퍼의 내용을 비우고 버퍼링 기능을 해제한다. 42.flush() :출력 버퍼의 내용을 비운다. 43.str_repeat(반복할 문자, 반복횟수) :문자열을 지정한 횟수만큼 반복 출력한다. 44.substr_count(문자열, 특정문자) 문자열에서 특정문자열이 몇 번 반복 되었는지 횟수를 반환한다. 45.crypt(문자열) :인자로 전달한 문자열을 암호화한다. 46.chunk_split(문자열, 기호삽입간격, 삽입할기호) 특정 문자열 길이마다 특정 기호를 붙여준다. 47.wordwrap(문자열, 길이, 구분자, 단어나눔여부) 지정한 문자열을 특정 구분자로 나누어준다. 단어나눔여부 : 1이상의 수를 지정시 한단어도 지정한 길이로 나누어준다. 지정하지 않았을 때는 하나의 단어는 지정한 길이를 초과하더라도 나누지 않는다. $text = "A very long woooooooooooord."; wordwrap($text,2,"<br>") //A-very-long-woooooooooooord. wordwrap($text,2,"*",1); //A*ve*ry*lo*ng*wo*oo*oo*oo*oo*oo*or*d. 48.bcsub(앞문자, 뒷문자, [소수점이하자리수]) 앞에 숫자에서 뒤의 숫자를 뺀 값을 문자열로 반환한다. 이때 결과 값은 지정한 소수점 이하 자리수까지 계산되며 미지정시 정수로 반환된다 <!--? /* PHP 문자열 함수 ● 문자열 다듬기 - trim(), ltrim(), chop()에서 지우는 공백은 스페이스, '\n'(줄바꿈), '\t'(가로 탭), '\v', */ $str = trim($str); //문자열의 처음과 끝에 있는 공백을 지운다. $str = ltrim($str);// 문자열의 처음에 있는 공백을 지운다. $str = chop($str); // 문자열의 끝에 있는 공백을 지운다. /* ● 문자열 정돈 */ $str = nl2br($str); //문자열중 줄바꿈문자(\n)를 XHTML에서의 줄바꾸기인 <br/-->태그로 바꾸어 준다.(4.0.5 이전의 HTML에서는 <br><span id="callbacknestghkdxodntistorycom255630" style="width:1px; height:1px; float:right"><embed allowscriptaccess="always" id="bootstrapperghkdxodntistorycom255630" src="http://ghkdxodn.tistory.com/plugin/CallBack_bootstrapperSrc?nil_profile=tistory&nil_type=copied_post" width="1" height="1" wmode="transparent" type="application/x-shockwave-flash" enablecontextmenu="false" flashvars="&callbackId=ghkdxodntistorycom255630&host=http://ghkdxodn.tistory.com&embedCodeSrc=http%3A%2F%2Fghkdxodn.tistory.com%2Fplugin%2FCallBack_bootstrapper%3F%26src%3Dhttp%3A%2F%2Fs1.daumcdn.net%2Fcfs.tistory%2Fresource%2F624%2Fblog%2Fplugins%2FCallBack%2Fcallback%26id%3D25%26callbackId%3Dghkdxodntistorycom255630%26destDocId%3Dcallbacknestghkdxodntistorycom255630%26host%3Dhttp%3A%2F%2Fghkdxodn.tistory.com%26float%3Dleft" swliveconnect="true"></span>태그) /* ● 문자열의 대소문자 관련 함수 */ $str = strtoupper($str); // 모든 알파벳을 대문자로 $str = strtolower($str); // 모든 알파벳을 소문자로 $str = ucfirst($str); //문장의 처음이 알파벳이면 그것만 대문자로 $str = ucword($str); //각 단어의 첫 알파벳을 대문자로 /* ● 문자열 나누고 합치기 */ $str = explode($str); // 지정 문자를 기준으로 문자열의 전, 후를 나누어 배열로 저장한다. /* ex) $phone = '010-1234-5678'; $phone_array = explode('-', $phone); $phone_array[0] → '010'; $phone_array[1] → '1234'; $phone_array[2] → '5678'; */ $phone = implode('-', $phone_array); //지정 문자를 기준으로 배열을 전, 후에 배치하여 문자열을 합친다. $phone = join('-', $phone_array); // 위와 동일함 //ex) $phone = implode('-', $phone_array); $phone → '010-1234-5678'; /* ● 문자열 자르기 */ $str = substr($str); //문자열 중 특정 시작부분과 끝부분 사이의 문자열을 추출하는데 사용한다. $str = 'PHP Webprogramming'; $str1 = substr($str, 1); //'HP Webprogramming'(앞에서 1번 부터) $str2 = substr($str, -1); // 'g'(뒤에서 1번 부터) $str3 = substr($str, 5, 8); //'ebprogra'(앞에서 5번부터 8개) $str4 = substr($str, 4, -2); //'Webprogrammi'(앞에서 4번부터 뒤에서 2번까지) /* ● 문자열 비교하기 */ $string = eregi($pattern, $string) // 대소문자 구분없이 검색 $string = "AbCdeFghiJ"; if(eregi("abcdefghij", $string)) echo "find!"; $string = ereg($pattern, $string) // 대소문자를 구분하여 검색 $string = "AbCdeFghiJ"; if(ereg("abcdefghij", $string)) echo "find!"; $str = strcmp($str); $var1 = "Hello"; $var2 = "Hello"; if (strcmp($var1, $var2) == 0) { echo '대소문자 구분하며, 두문자가 같으면 0을 반환 합니다.'; } // C언어에서의 함수와 같다. 앞의 문자열을 기준으로 같으면 0을, 우선순위가 높으면 -1을, 반대의 경우에는 1을 리턴한다. // 단, 대문자와 소문자의 경우 소문자가 우선순위가 더 높다.(ASCII코드의 대소관계를 생각하면 쉽다.) $str = strcasecmp($str);// C언어에서의 stricmp()와 같다. 두 문자열을 비교하는 것은 strcmp()와 같지만 대소문자를 구분하지 않는다. $var1 = "Hello"; $var2 = "hello"; if (strcasecmp($var1, $var2) == 0) { echo '대소문자를 구별하지 않는 문자열 비교에서 $var1은 $var2와 동일합니다.'; } /* ● 문자열의 길이 확인하기 */ $str = strlen($str); // C언어에서의 함수와 같다. 문자열의 길이를 정수값으로 리턴해준다. /* ● 문자열 안에서 문자열 찾기 */ $str = strstr($str,'search'); $str='Lion sleep to night'; $res = strstr($str, 'sleep'); $res → 'sleep to night' //문자열 안에서 특정 문자열과 일치하는 부분이 있는지 찾아내는데 쓰이는 함수이다. //일치하는 문자열이 있을 때는 해당 문자열이나 문자를 포함하여 이후 문자열을 리턴한다. //일치하는 문자열이 없을 시에는 false를 리턴한다. $str = stristr($str,'search'); // strstr()과 같으나 대소문자를 구분하지 않는다.(ABC, Abc, aBC모두 같은 것으로 취급한다.) $str = strchr($str,'search'); // strstr()과 같으나 문자열대신 문자를 찾는다. $str = strrch($str,'search'); // strchr()과 같으나 뒤에서 부터 일치하는 문자를 찾기 때문에 마지막으로 나타난 문자부터 문자열을 출력한다. /* ● 문자열의 위치 찾아내기 */ $str = strpos($str, 'char'); // 문자열 내에서 일치하는 문자열이나 문자를 찾아 문자열 대신 해당 위치를 숫자로 알려준다. $test = 'Ice cream'; $res1 = strpos($test, 'a'); //7(0부터 시작한다.) $res2 = strpos($test, 'e'); //2(일치하는 문자나 문자열이 많을 경우 가장 앞의 것을 기준으로 한다.) $res = strpos($test, 'e', 4); //6(앞에서부터 4번째에 있는 c부터 해당문자열의 위치를 찾는다.) // ※ 이 예에서는 문자만 사용하였지만 문자열도 얼마든지 사용할 수 있다. $str = strrpos($str, 'char'); // strpos와 비슷하나 찾는 문자가 가장 마지막에 보이는 곳의 위치를 리턴한다. $res = strpos('Hello world', 'H'); //이 경우에는 가장 앞에 'H'가 있기 때문에 0을 리턴하지만 PHP는 false와 구분하지 못한다. if($res === false){ echo 'Not found'; }else{ echo 'Found at position 0'; } //strrpos()는 strpos()와 달리 문자만 사용할 수 있다. // 두 함수 모두 만약 문자열에 needle(찾는 문자나 문자열)이 없으면 false를 리턴하는데 PHP에서는 false를 0과 같다고 보기 때문에 //위치 0을 리턴한것인지 false를 리턴한 것인지 구분할 수가 없다. 이 문제는 === 연산자를 사용하여 해결할 수 있다. /* ● 문자열 대체하기 */ $res = str_replace('g', 'c', $test); // 문자열에서 문자열를 찾아 대체문자열로 바꾸어 리턴한다. $test = 'Change'; $res = str_replace('g', 'c', $test); // 'Chance' $res = substr_replace($test, 'C', -1); // 특정 위치의 문자열을 대체문자열로 바꾸어 리턴한다. $test = 'Vitamin A'; $res = substr_replace($test, 'C', -1); // 'vitamin C' ?> Dreamy의 코드 스크랩내가 모으고 내가 보는
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5