문자열 처리 함수

Language/PHP 2010. 7. 16. 11:04

문자열 처리함수

 

addslashes()
-용도: 작은따옴표 큰따옴표와 같은 특정문자 앞에 역슬래시 문자를 붙인다.
-방법: addslashes()

 

stripslashes()
-용도: allslashes로 역슬래시 처리된 문자를 원상태로 되돌린다.
-방법: stripslashes()

 

htmlspecialchars()
-용도: HTML코드를 소스 그대로 출력해준다.
-방법: htmlspecialchars()

 

nl2br()
-용도: 문자열에 포함된 개행 문자를 <br>태그로 모두 바꿔준다.
-방법: nl2br()

 

echo()
-용도: 문자열 출력
-방법: echo("변수명" 또는 "문자열")

 

sprintf()
-용도: 포맷 문자열을 통해 지정해 준 포맷으로 문자열을 표시한다.
-방법: sprintf("포맷","변수명")

 

printf()
-용도: 지정할 수 있는 포맷에 따라 문자열을 출력한다.
-방법: printf("포맷","변수명")

 

explode()
-용도: 문자열을 지정해준 구분자로 분리하여 배열에 저장한다.
-방법: explode("구분자","문자열인수") 

<?php
// 예제 1
$pizza  "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces explode (" "$pizza);
echo 
$pieces[0]; // piece1
echo $pieces[1]; // piece2

// 예제 2
$data "foo:*:1023:1000::/home/foo:/bin/sh";
list(
$user$pass$uid$gid$gecos$home$shell) = explode(":"$data);
echo 
$user// foo
echo $pass// *

?>

* list()

<?
 // 예제 1
 $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
 $pieces = explode (" ", $pizza);
 echo $pieces[0]."<br>"; // piece1
 echo $pieces[1]."<br>"; // piece2
 // 예제 2
 $data = "foo:*:1023:1000::/home/foo:/bin/sh";
 list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
 echo $user."<br>"; // foo
 echo $pass; // *
?>

<table>
 <tr>
  <th>Employee name</th>
  <th>Salary</th>
 </tr>

<?php

$result 
mysql_query ("SELECT id, name, salary FROM employees"$conn);
while (list (
$id$name$salary) = mysql_fetch_row ($result)) {
    echo 
" <tr>\n" .
          
"  <td><a href=\"info.php?id=$id\">$name</a></td>\n" .
          
"  <td>$salary</td>\n" .
          
" </tr>\n";
}

?>

</table>

<?php

$info 
= array('coffee''brown''caffeine');

list(
$a[0], $a[1], $a[2]) = $info;

var_dump($a);

?>

// 결과
array(3) {
  [2]=>
  string(8) "caffeine"
  [1]=>
  string(5) "brown"
  [0]=>
  string(6) "coffee"
}


implode()
-용도: 구분자로 나누어 배열에 담은 문자열을 다시 지정해준 구분자로 연결하여 전체 문자열을 반환한다.
-방법: implode("구분자",배열변수명) 

<?php

$array 
= array('lastname''email''phone'
);
$comma_separated implode(","$array
);

echo 
$comma_separated
// lastname,email,phone

?>


join()
-용도: implode()와 동일한 기능을 수행한다.
-방법: join("/", "배열변수명")

 

split()
-용도: 주어진 문자열을 정규표현식의 패턴에 따라 분리하여 배열에 저장한다.
-방법: implode("정규표현식","문자열") 

<?php
// Delimiters may be slash, dot, or hyphen
$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";
// Result
//Month: 04; Day: 30; Year: 1973
?>


strcmp()
-용도: 두개의 문자열을 비교하여 참이면1, 거짓이면 0을 반환한다. 대소문자를 구분한다.
-방법: strcmp("문자열","문자열") 또는 strcmp("문자열","변수명") 또는 strcmp(변수명, 변수명)

$str1 = "a";
$str2 = "A";

$cmp = strcmp($str1, $str2);
if($cmp > 0)
    echo "str1이 str2보다 크다";
else if($cmp == 0)
    echo "str1과 str2는 같다";
else
    echo "str1이 str2보다 작다";

 

str1이 str2보다 작다


 

substr()
-용도: 문자열에서 특정시작 문자부터 길이만큼의 문자열을 추출하여 반환한다.
-방법: substr("문자열", 시작문자번호, 문자열의 길이)

  


<?php
echo substr('abcdef'1);     
// bcdef
echo substr('abcdef'13);  
// bcd
echo substr('abcdef'04);  
// abcd
echo substr('abcdef'08);  
// abcdef
echo substr('abcdef', -11); 
// f

// Accessing single characters in a string
// can also be achieved using "square brackets"
$string 'abcdef'
;
echo 
$string[0];                 
// a
echo $string[3];                 
// d
echo $string[strlen($string)-1]; 
// f

?>


strchr()
-용도: 문자열이 처음으로 나타나는 위치부터 끝까지 반환
-방법: strchr("문자열","찾을 문자열")

 

strstr()
-용도:strchr()함수와 동일한 수행을 한다.
-방법: strstr("문자열","찾을 문자열")

 

<?php
$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // @example.com 출력.
//$user = strstr($email, '@' true); // PHP 5.3.0부터
//echo $user; // name 출력
?>



@example.com


strrchr()
-용도: 문자열이 마지막으로 나타나는 위치부터 끝까지 반환한다.
-방법: strrchr("문자열","찾을문자열")

 

strpos()
-용도: 문자열 대신 처음으로 나타나는 위치를 숫자로 반환, 이때 숫자는 0부터 시작.
-방법: strpos("문자열","찾을 문자열") 

<?php
$mystring 
'abc';
$findme   'a';
$pos strpos($mystring$findme);

// ===를 사용하는 점에 주의하십시오. ==는 'a'가 0번째
// (처음) 문자이기에 기대하는 대로 작동하지 않습니다.
if ($pos === false) {
    echo 
"'$findme' 문자열을 '$mystring' 문자열에서 찾지 못했습니다.";
} else {
    echo 
"'$findme' 문자열을 '$mystring' 문자열에서 찾았습니다.";
    echo 
"위치 $pos에 존재합니다.";
}
?>


<?php
// offset 앞을 모두 무시하고 문자를 찾을 수 있습니다.
$newstring 'abcdef abcdef';
$pos strpos($newstring'a'1); // $pos = 7, not 0
?>

 

이 함수는 논리 FALSE를 반환하지만, 0이나 "" 등, 논리 FALSE로 취급할 수 있는 다른 값을 반환할 수 있습니다. 자세한 정보는 논리형 섹션을 참고하십시오. 이 함수의 반환값을 확인하려면 === 연산자를 이용하십시오.


strrpos()
-용도: 찾고자 하는 문자열에서 마지막으로 나타나는 위치를 반환한다.
-방법: strrpos("문자열", "찾을 문자열")

 

strlen()
-용도: 문자열의 길이를 반환한다.
-방법: strlen($변수명) 또는 strlen("문자열")

 

<?php
$str 
'abcdef'
;
echo 
strlen($str); 
// 6

$str ' ab cd '
;
echo 
strlen($str); 
// 7
?>


strtolower()
-용도: 알파벳 대문자를 모두 소문자로 바꾸어 반환한다.
-방법: strtolower("문자열")

 

strtoupper()
-용도: 알파벳 소문자를 모두 대문자로 바꾸어 반환한다.
-방법: strtoupper("문자열")

 

ucfirst()
-용도: 알파벳 문자열의 첫 글자를 대문자로 반환한다.
-방법: unfirst("문자열") 

<?php
$foo 
'hello world!'
;
$foo ucfirst($foo);             
// Hello world!

$bar 'HELLO WORLD!'
;
$bar ucfirst($bar);             
// HELLO WORLD!
$bar ucfirst(strtolower($bar)); 
// Hello world!
?>

ucwords()
-용도: 알파벳 문자열의 첫 글자를 대문자로 반환한다.
-방법: ucwords("문자열") 

<?php
$foo 
'hello world!'
;
$foo ucwords($foo);             
// Hello World!

$bar 'HELLO WORLD!'
;
$bar ucwords($bar);             
// HELLO WORLD!
$bar ucwords(strtolower($bar)); 
// Hello World!
?>

strrev()
-용도: 인자로 전달한 문자열의 순서를 역전시킨다.
-방법: strrev("문자열") 

<?php
echo strrev("Hello world!"); 
// "!dlrow olleH"를 출력
?>

strtr()
-용도: 문자열에서 변경하고자 하는 문자열을 변경할문자열로 1:1 변경해준다.
-방법: strtr("문자열","변경하고자하는 문자열","변경할 문자열") 

<?php
$addr 
strtr($addr"äåö""aao"
);
?>



<?php
$trans 
= array("hello" => "hi""hi" => "hello");
echo 
strtr("hi all, I said hello"$trans); // hello all, I said hi
?>


str_replace()
-용도: 문자열 중에 변경하고자 하는 문자열을 찾아 변환한다.
-방법: str_replace("찾을 문자열","변경할 문자열","문자열 원본")

 

chop()
-용도: 문자열의 뒷부분의 공백 문자를 제거한 후 반환한다.
-방법: chop("문자열")

 

trim()
-용도: 문자열의 앞과 뒤에 있는 공백을 제거한 후 문자열을 반환한다.
-방법: trim("문자열")

 

quotemeta()
-용도: 메타문자 앞에 역슬래시를 붙인다.
-방법: quotemeta() 

<?php
$str
= "Hello world. (can you hear me?)"
;
echo
quotemeta($str
);
?>

The output of the code above will be:
Hello world\. \(can you hear me\?\)

ord/chr()
-용도: ord()함수는 문자열에서 첫번째 문자에 아스키코드값을 반환하고 chr()함수는 아스키함수에 해당하는 문자를 반환한다.
-방법: ord("문자열"), chr("아스키값") 

<?
 $str = "a";    // 97
 echo ord($str)."<br>";
 echo chr(97);   // a
?>

parse_str()
-용도: get방식과 같은 형태의 변수형을 변수와 값으로 받을 수 있게 해준다.
-방법: parse_str(변수명)

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str
);
echo
$first; 
// value
echo $arr[0];
// foo bar
echo $arr[1];
// baz

parse_str($str, $output
);
echo
$output['first'];  
// value
echo $output['arr'][0];
// foo bar
echo $output['arr'][1];
// baz

?>


* parse_url();

<?php
 $url = "http://blog.naver.com/amenyes?Redirect=Log&logNo=60743979";
 $info=parse_url($url);

 echo"<pre>";
 var_dump($info);
 echo"</pre>";
?>
// 결과
array(4) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(14) "blog.naver.com"
  ["path"]=>
  string(8) "/amenyes"
  ["query"]=>
  string(27) "Redirect=Log&logNo=60743979"
}

    * scheme - 예. http
    * host
    * port
    * user
    * pass
    * path
    * query - 물음표 ? 뒤
    * fragment - 해시마크 # 뒤

'Language > PHP' 카테고리의 다른 글

자바스크립트 변수를 php변수로 넘기기  (0) 2010.07.20
HTTP_REFERER  (0) 2010.07.16
time(), mktime(), date() 종합  (0) 2010.07.15
htmlspecialchars  (0) 2010.07.14
eval  (0) 2010.07.14
: