json_encode 로 한글 문자 깨짐현상을 겪어보신 분들은 잘 아실듯 합니다.


편법으로 urlencode 나 base64_encode 로 문자열 처리한 후 다시 원상복구과정으로 처리합니다만 그러나 php 5.4 부터 지원하는 JSON_UNESCAPED_UNICODE 상수를 이용하면 번거롭게 편법을 하지 않아도 유니코드 문자열을 처리할 수 있게 되었습니다.


 <?php

 $arr = array('name' => "하보니입니다.");
$encode json_encode$arrJSON_UNESCAPED_UNICODE );
print_r($encode);
/*
    결과 : 
    {"name":"하보니입니다."}
*/

$decode json_decode$encode );
print_r($decode);
/*
    결과 : 
    stdClass Object
    (
        [name] => 하보니입니다.
    )
*/
?>


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

PHP 5,3 부터 지원하는 openssl_encrypt 함수를 이용하면 문자열을 암호화, 복호화 함수를 만들 수 있습니다.

<?php

function Encrypt($str$secret_key='secret key'$secret_iv='secret iv')
{
    
$key hash('sha256'$secret_key);
    
$iv substr(hash('sha256'$secret_iv), 032)    ;
    return 
str_replace("="""base64_encode( openssl_encrypt($str"AES-256-CBC"$key0$iv)) );
}

function 
Decrypt($str$secret_key='secret key'$secret_iv='secret iv')
{
    
$key hash('sha256'$secret_key);
    
$iv substr(hash('sha256'$secret_iv), 032);
    return 
openssl_decrypt( base64_decode($str), "AES-256-CBC"$key0$iv );
}

$str "안녕하세요. 하보니입니다.";
$secret_key "123456789";
$secret_iv "#@$%^&*()_+=-";

$encrypted Encrypt($str$secret_key$secret_iv);
echo 
"암호화 문자열 => " .$encrypted"<br />\n";
$decrypted Decrypt($encrypted$secret_key$secret_iv);
echo 
"복호화 문자열 => " .$decrypted"\n";

/*
    결과:
    암호화 문자열 => VUYxMHFQVWU5TG9KeWMrZlJhZjV3VkFJbTFHV DZERlhNeEpldW1GRVB0WjQyODdkRnFDTFhIa0UrWEEvb1VGbg
    복호화 문자열 => 안녕하세요. 하보니입니다.
*/
?>

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

string preg_quote ( string $str [, string $delimiter ] )

 

str에서 정규 표현식 문법(. \ + * ? [ ^ ] $ ( ) { } = ! < > | :)에 포함되는 모든 문자의 앞에 백슬래시를 붙여 반환하고, delimiter를 정의하면, 그 문자들도 이스케이프합니다. PCRE 함수에서 요구하는 구분자를 이스케이프 할 때 유용합니다. /는 가장 널리 사용되는 구분자입니다.


예제 #1)

 

 <?php
 $keywords
= '$40 for a g3/400'
;
 $keywords = preg_quote($keywords, '/'
);
 echo
$keywords;
// \$40 for a g3\/400
 ?>


예제 #2)

 <?php
 $textbody = "This book is *very* difficult to find.";
 $word = "*very*"
;
 $textbody = preg_replace("/" . preg_quote($word) . "/"
, "<i>" . $word . "</i>", $textbody);
 echo
$textbody
; // This book is *very* difficult to find.
 ?>


예제 #3)

 <?php
 $text
= 'Test: *#5*'
;
 $search = "*#5*"
;
 $replace = "*$5\\1*"
;
 $search = preg_quote($search, "/"
);
 $replace = str_replace (array('\\','$'),array('\\\\','\$'),$replace
);
 $new = preg_replace("/$search/", "$replace", $text
);
 echo
"Input: $text"; // 결과: Test: *#5*

 echo "Output: $new"// 결과: Test: *$5\1*
 
?>


예제 #4)

 <?php
 // $_GET['url'] => alert(document.cookie)
 $href = $_GET['url'
];

 echo
"<a onmouseover='" . $href . "'>xxs link</a>";

 // 결과: alert(document.cookie)
 echo "<IFRAME SRC=# onmouseover='" . preg_quote($href) . "'></IFRAME>";

 // 결과: alert\(document.cookie\) 

 ?>

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

 <?php
 function string_cut($string$length, $lan='utf-8'){ 
    $string str_replace("&nbsp;",' ',$string); 
    $tmp substr($string,0,$length);
    if(
$tmp strlen($string
)) {
        
$count_tmp = ($lan === 'utf-8') ? 2
;
        
$i=0
;
        while(
$i $length
) {
            
$i += (ord(substr($string,$i,1)) > 127) ? $count_tmp 1
;
        }
        
$tmp substr($string,0,$i
);
    }
    return 
str_replace('  ',' &nbsp;',$tmp
);
 }

 ?>
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

str_split 함수

array
str_split ( string $string [, int $split_length ] ) (PHP 5)

이 함수는 문자열을 배열로 변환합니다. 일반적으로 split 함수와 흡사합니다.

예제(ex #1
 <?php
 $str 
"Hello Friend";

 
$arr1 str_split($str); 
 print_r($arr1); 
 /* 
 결과:
 Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
 ) 
 */


 // 문자열을 3글자씩 잘라 배열로 반환합니다.
 $arr2 str_split($str3); 
 
print_r($arr2); 
 /*
 결과:
 Array
 (
    [0] => Hel
    [1] => lo 
    [2] => Fri
    [3] => end
 )
 */
 
?> 

예제(ex #2
 <?php
 function str_rsplit($str$sz
){ 
    if ( !$sz ) {
         return 
false
;
    }
    if ( 
$sz ) {
         return 
str_split($str,$sz);
    }

     
    
$l strlen($str
);
    
$sz min(-$sz,$l
);
    
$mod $l $sz
;
    
    if ( !
$mod ) {
         return 
str_split($str,$sz);
    }


    
return array_merge(array(substr($str,0,$mod)), 
                     str_split
(substr($str,$mod),$sz
));
 }

 $str 'aAbBcCdDeEfFg'
;
 str_split($str,5); 
// 결과: {'aAbBc','CdDeE','fFg'}
 str_rsplit($str,5); 
// 결과: {'aAbBc','CdDeE','fFg'}
 str_rsplit($str,-5); 
// 결과: {'aAb','BcCdD','eEfFg'}
 ?> 

PHP 5 이하 버전이라면 다음 함수로 사용하면 됩니다.

예제(ex #3
 <?php
 if(!function_exists('str_split'
)){ 
    function 
str_split($string,$split_length=1
){ 
        
$count strlen($string
);  
        if(
$split_length 1
){ 
            return 
false
;  
        } elseif(
$split_length $count
){ 
            return array(
$string
); 
        } else { 
            
$num = (int)ceil($count/$split_length
);  
            
$ret 
= array();  
            for(
$i=0;$i<$num;$i
++){  
                
$ret[] = substr($string,$i*$split_length,
                                             
$split_length
);  
            }  
            return 
$ret

        }      
    }  
 }
 ?> 

str_word_count 함수

mixed str_word_count ( string $string [, int $format [, string $charlist ]] ) (PHP 4 >= 4.3.0, PHP 5)

format 인자는 선택적인 정수를 대입하는데, string 안의 단어 수를 셉니다. format 를 지정하면, 반환값은 배열로써, 다음 표의 값에 따라 결정됩니다.


 0 발견한 단어 수를 반환합니다.
 1 string 안에서 발견한 모든 단어를 배열로 반환합니다. 
 2 키는 string 안에서 단어의 위치이고, 값은 단어입니다.

charlist 인자는 '단어'로 간주할 추가 문자 목록이며, PHP 5.1 부터 사용가능합니다.

예제(ex #4
 <?php
 $str 
"Hello fri3nd, you're
        looking          good today!"
;

 // string 안에서 발견한 모든 단어를 가진 배열을 반환합니다. 
 print_r(str_word_count($str1
));
 /*
 결과:
 Array
 (
    [0] => Hello
    [1] => fri
    [2] => nd
    [3] => you're
    [4] => looking
    [5] => good
    [6] => today
 )
 */


 // 키는 string 안에서 단어의 위치이고, 값은 단어인 배열을 반환합니다.
 print_r(str_word_count($str2
));
 /*
 결과:
 Array
 (
    [0] => Hello
    [6] => fri
    [10] => nd
    [14] => you're
    [29] => looking
    [46] => good
    [51] => today
 )
 */


 print_r(str_word_count($str1'aaac3'
));
 /*
 결과:
 Array
 (
    [0] => Hello
    [1] => fri3nd
    [2] => you're
    [3] => looking
    [4] => good
    [5] => today
 )
 */ 


 // format 을 지정하지 않으면 기본 0을 대입하게 됩니다.
 echo str_word_count($str); 
// 결과: 7 

 ?>

예제(ex #5
 <?php
 function count_words($string){
   
   
$string trim(preg_replace("/\s+/"," ",$string
));
   
   
$word_array explode(" "$string
);
   
   
$num count($word_array
);
   
   return 
$num

 }

 $str "Hello fri3nd, you're               looking good today!"
;

 echo 
count_words($str
);

 ?> 


블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

bool ctype_alnum ( string $text ) (PHP 4 >= 4.0.4, PHP 5)

이 함수는 [a-zA-Z0-9] 로 숫자, 영문 대소문자에 해당되면, true를, 실패하면 false를 반환합니다.

예제 (ex #1

 <?php
 $strings 
= array('AbCd501zyZ9''foo!#$bar'''' ''asdc xc'
); 
 $i = 1;
 foreach (
$strings as $testcase
) {
    if (
ctype_alnum($testcase
)) {
        echo 
"$i $testcase 에는 문제되는 문자가 없습니다.\n"
;
    } else {
        echo 
"$i $testcase 에는 문제되는 다른 문자가 포함되어 있습니다.\n"
;
    } 
    $i++;
 }
 /*
 결과:
 1 AbCd501zyZ9 에는 문제되는 문자가 없습니다.
 2 foo!#$bar 에는 문제되는 다른 문자가 포함되어 있습니다.
 3 에는 문제되는 다른 문자가 포함되어 있습니다.
 4  에는 문제되는 다른 문자가 포함되어 있습니다.
 5 asdc xc 에는 문제되는 다른 문자가 포함되어 있습니다.
 */
 ?>

다음의 id체크 표현은 정규표현식으로 하는게 더 정확하고, 불필요한 오류를 줄일 수 있는 장점이 있지만, 느리다는 단점이 있으니 적절한 방법으로 코딩하면 될 것 같습니다.

예제 (ex #2
 <?php
 $userid 
$_POST['user_id'
];

 if (
ctype_alnum($userid
)) {
    if((
strlen($userid) < 5) || (strlen($userid) > 12
)){
        echo 
"id 는 5자이상 12자 이하로 작성해 주십시요."
;
    } else { 
        echo "id 는 정상적으로 작성하셨습니다."
    }
 } else {
    echo 
"id로 허용할 수 없는 문자가 포함되어 있습니다. id는 영문 대소문자, 숫자만 허용합니다.\n"
;
 } 

 ?>

다음은 파일시스템 보안에 대한 설명입니다. 한눈에 보아도 문제가 있다는 것을 알 수 있습니다.

예제 (ex #3
 <?php
 $username $_POST['user_submitted_name']; // "../etc"
 $userfile $_POST['user_submitted_filename']; 
// "passwd"
 $homedir  "/home/$username"
// "/home/../etc"

 unlink("$homedir/$userfile"); 
// "/home/../etc/passwd"

 echo "The file has been deleted!"
;
 ?>

이 문제를 적절히 수정해 주면, 다음과 같이 유용하게 대처할 수 있습니다.

예제 (ex #4
 <?php
 $username $_POST['user_submitted_name']; // "../etc"

 $userfile $_POST['user_submitted_filename'
];
 $homedir  "/home/$username"
;

 $filepath     "$homedir/$userfile"
;

 if (!
ctype_alnum($username) || !preg_match('/^(?:[a-z0-9_-]|\.(?!\.))+$/iD'$userfile
)) {
    die(
"Bad username/filename"
);
 }
 //etc...
 ?>

예제 (ex #5
 <?php
 $file 
$_GET['file'
]; 

 switch ($file) {
    case 
'main'
:
    case 
'foo'
:
    case 
'bar'
:
        include 
'/home/wwwrun/include/'.$file.'.php'
;
        break;
    default:
        include 
'/home/wwwrun/include/main.php'
;
 }
 ?>

블로그 이미지

하보니

하보니와 함께하는 phP 초보

Tag 검색

댓글을 달아 주세요

string base64_encode ( string $data ) (PHP 4, PHP 5)

이 함수는 모든 정보를 64개 문자로 구성된 64진수로 바꾸는 것으로 a-z, A-Z, 0-9, +, / 의 문자이며, 암호화 방식과는 거리가 멀고, 데이터보다 33% 많은 공간을 필요로 합니다.

예제 (ex #1
 <?php 
 $str 
'This is an encoded string'

 echo 
base64_encode($str
); 
 
// 결과: VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw== 
 
?>

64 문자는 = 포함한 문자인데, = 단순히 4자리 수를 맞춰 공간을 채우는 의미 없는 문자이므로 신경쓰지 않아도 됩니다.

 

인코딩은 메일 본문처럼 8비트를 사용할 없는 전송 층에서 바이너리 데이터를 안전하게 전송하도록 설계되었습니다.

 

다만, GET이나 REQUEST 전송시 +, / 문자가 문제시 되므로 urlencode 데이터를 보호하거나 다음과 같이 치환해서 데이터를 보호해줄 필요가 있습니다.

예제 (ex #1

 <?php
 
function base64encode($string) { 
    
$data str_replace(array('+','/','='),array('-','_',''),base64_encode($string)); 
    return 
$data
 } 

 function 
base64decode($string) { 
    
$data str_replace(array('-','_'),array('+','/'),$string); 
    
$mod4 strlen($data) % 4
    if (
$mod4) { 
        
$data .= substr('===='$mod4); 
    } 
    return 
base64_decode($data); 
 } 

 
$string '1234567890가나다라마바사'
 
$data base64encode($string); 

 echo 
$data// 결과: MTIzNDU2Nzg5MLChs6q02bbzuLa52bvn 
 
echo '<br />'

 echo 
base64decode($data); // 결과: 1234567890가나다라마바사 
 
?>

관련글:  2011/08/30 - Base64 인코딩 원리
            2011/08/09 - 문자열 URL 인코드 함수
            2011/05/29 - 패스워드 스니핑

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

ord 함수는 특정 문자를 아스키 값으로 변환하는 함수로 비교 제어문에 자주 사용됩니다.

int ord ( string $string ) (PHP 4, PHP 5)

예제 (ex #1
 <?php
 $str 
"\n"
;
 if (
ord($str) == 10
) {
    echo 
"\$str의 첫번째 문자는 줄바꿈입니다.\n"
;
 }
 ?>

한글은 아스키 값 127 이상의 값을 가지기 때문에 다음과 같이 작성하여 스팸 글로 판단, 차단할 수도 있습니다.

예제 (ex #2
 <?php
 $str 
"abcdefghijklmnopqrstuvwxyz"
;

 function 
ordchk($str
){
    
$cnt strlen($str
);
    for(
$i=0$i<$cnt$i
++){
        if(
ord($str[$i]) > 127
){
            return 
true
;
        }
    }
    return 
false
;
 }

 if(
ordchk($str) === true
){
    echo 
"글등록이 가능합니다."
;
 } else {
    echo 
"영문자로만 구성되어 있어 글등록이 거부됩니다."
;
 }
 ?> 

string chr ( int $ascii ) (PHP 4, PHP 5)

ascii 에 지정한 문자를 가지는 한 글자의 문자열을 반환하는 이 함수는 ord 함수의 역입니다.

예제 (ex #3

 <?php
 $str 
"The string ends in escape: "
;
 $str .= chr(27); 
 
// $str의 마지막에 이스케이프 문자를 추가합니다.

 // 다음 함수도 이와 같은 역할을 합니다.
 $str sprintf("The string ends in escape: %c"27
);
 ?>

관련글: 2011/08/14 - 형식화한 문자열을 반환하는 spintf 함수
           2011/03/16 - 아스키 코드 표
           2011/08/17 - 아스키 코드 표 #2

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

string sprintf ( string $format [, mixed $args [, mixed $... ]] ) (PHP 4, PHP 5)

형 지시자

이 함수는 문자열 format 에 따라 생성한 문자열을 반환하는데, 변환 지시자는 퍼센트 기호(%)에 다음 표의 형 지시자들이 붙어서 구성됩니다. 참고로 printf 함수는 브라우저로 바로 출력한다는 점 말고는 동일합니다.

 포맷  설명 ex.
 %
 퍼센트 문자. 인자는 필요하지 않습니다.
 
 b
 정수를 2진수로 표현합니다.
 
 c
 정수를 아스키값으로 표현합니다.
 
 d
 정수를 부호 있는 10진수로 표현합니다.
 
 e

 정밀도
지정어는 PHP 5.2.1부터 소수점 아래 자리 수를 정합니다. 이전 버전에서는 유효숫자의 갯수(하나 적음) 취급했었습니다.
(예. 1.2e+2)
 u
 정수를 부호 없는 10진수로 표현합니다.
 
 f
 부동소수점 실수를 소수로 표현합니다.
 
 o  정수를 8진수로 표현합니다.  
 s  문자열로 표현합니다.  
 x  정수를 16진수(소문자 표시) 표현합니다.  
 X  정수를 16진수(대문자 표시) 표현합니다.  

예제 (ex #1
 <?php
 $n 
=  43951789
;
 $u = -43951789
;
 $c 65
// 아스키 65는 'A'

 // 이중 %% 는 '%' 문자를 출력합니다. 
 printf("%%b = '%b'\n"$n); // 2진 표현
 // 결과: %b = '10100111101010011010101101'

 printf("%%c = '%c'\n"$c); 
// 아스키 문자 출력, chr() 함수와 동일
 // 결과: %c = 'A'

 printf("%%d = '%d'\n"$n); 
// 표준 정수
 // 결과: %d = '43951789'

 printf("%%e = '%e'\n"$n); 
// 정밀도 표현
 // 결과: %e = '4.395179e+7'

 printf("%%u = '%u'\n"$n); 
// 양의 정수에 대한 부호 없는 정수 표현
 // 결과: %u = '43951789'

 printf("%%u = '%u'\n"$u); 
// 음의 정수에 대한 부호 없는 정수 표현
 // 결과: %u = '4251015507'

 printf("%%f = '%f'\n"$n); 
// 부동소수점 표현
 // 결과: %f = '43951789.000000'

 printf("%%o = '%o'\n"$n); 
// 8진 표현
 // 결과: %o = '247523255'

 printf("%%s = '%s'\n"$n); 
// 문자열 표현
 // 결과: %s = '43951789'

 printf("%%x = '%x'\n"$n); 
// 16진 표현 (소문자)
 // 결과: %x = '29ea6ad'

 printf("%%X = '%X'\n"$n); 
// 16진 표현 (대문자)
 // 결과: %X = '29EA6AD' 

 ?> 

부호 지시자

형 지시자 앞에 부호 (+나 -)가 올 수 있는데, 이를 부호 지시자라 합니다. 부호 지시자는 다음과 같이 사용합니다.

예제 (ex #2
 <?php
 $n 
=  43951789
;
 $u = -43951789

 printf("%%+d = '%+d'\n"$n); // 양의 정수에 대한 부호 지시자
 // 결과: %+d = '+43951789'

 printf("%%+d = '%+d'\n"$u); 
// 음의 정수에 대한 부호 지시자
 // 결과: %+d = '-43951789'
 ?> 

패딩 지시자

패딩 지시자는 빈 자릿수를 채워 주는 문자를 지정하며, 공백문자나 0 (제로 문자)가 올 수 있습니다. 문자를 지정하지 않으면, 기본 공백 문자로 채워지게 되며, 사용자 문자를 정의할 때는 패딩 문자 앞에 작은 따옴표(')를 붙여서 사용합니다.

예제 (ex #3
 <?php
 $year = 2011;
 $month = 8;
 $day = 30;

 // 년도는 4자리 이진수로 표현. 4자리 미만이면 0으로 빈 자릿수를 채웁니다.
 // 월은 2자리 이진수로 표현. 2자리 미만이면 0으로 빈 자릿수를 채웁니다.
 // 일은 2자리 이진수로 표현. 2자리 미만이면 0으로 빈 자릿수를 채웁니다.

 echo
 sprintf("%04d-%02d-%02d"$year$month$day
);
 // 결과: 2011-08-30
 ?>

다음은 0 의 값이 아닌 # 문자로 채우는 방법입니다. 문자 앞에 ' 를 붙여줍니다.

예제 (ex #4
 <?php
 $year = 11;
 $month = 8;
 $day = 30;

 // $year 변수 4자리 미만이면 #문자를 빈 자릿수로 채웁니다.
 echo
 sprintf("%'#4d-%'#2d-%'#2d"$year$month$day
);
 // 결과: ##11-#8-30
 ?>

다음은 통화 표현 예제 입니다.

예제 (ex #5
 <?php
 $money1 
68.75
;
 $money2 54.35
;
 $money $money1 $money2;

 // 결과 123.1
 echo $money;


 // 1자리 미만이면,0을 빈 자릿수로 채우고, 소수점은 2자릿 수로 채움
 $formatted sprintf("%01.2f"$money
);
 //결과: 123.10
 ?>

다음 예제도 빈 자릿 수 표현입니다.

예제 (ex #6
 <?php
 $s 
'monkey'
;
 $t 'many monkeys'
;

 printf("[%s]\n",      $s); 
// 표준 문자열 출력
 // 결과: [monkey] 

 printf("[%10s]\n"     $s); 
// 공백으로 오른쪽 정렬
 // 결과: [    monkey] 

 printf("[%-10s]\n",   $s); 
// 공백으로 왼쪽 정렬
 // 결과: [monkey    ] 

 printf("[%010s]\n",   $s); 
// 0 채우기도 문자열에 작동
 // 결과: [0000monkey] 

 printf("[%'#10s]\n",  $s); 
// 사용자 채우기 문자 '#' 사용
 // 결과: [####monkey] 

 printf("[%10.10s]\n"$t); 
// 왼쪽 정렬이지만 10문자로 자름
 // 결과: [many monke]
 ?>

예제 (ex #7
 <?php
 function sprintf_nbsp() {
   
$args func_get_args
();
   return 
str_replace(' ''&nbsp;'vsprintf(array_shift($args), array_values($args
)));
 }

 $format 'The %d monkeys are attacking the [%10s]!';
 $str sprintf_nbsp($format15'zoo'
);
 echo 
$str

 
// 결과: The 15 monkeys are attacking the [       zoo]!
 ?>
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

문자열을 인코드하는 함수는 urlencode, rawurlencode 가 있습니다.  rawurlencode 함수는 -_.을 제외한 모든 영숫자가 아닌 문자를 퍼센트(%) 사인에 이어지는 두 16진수로 교체한 문자열을 반환합니다.

이는 표시 문자가 특별한 URL 구분자로 해석되는 걸 방지하고, 문자 변환이 이루어지는 몇몇 email 시스템 등에서 URL을 보호하기 위한 수단으로 이용됩니다.

urlencode 는 공백을 더하기 부호(+)로 인코드 하는 점 말고는 rawurlencode 와 동일한 기능을 제공합니다.

예제 (ex #1
 <?php
 
// ex #1
 
$foo '"/:@&%=?.#"'
;
 
$bar '#$%=+'
;
 
$query_string 'foo=' urlencode($foo) . '&bar=' urlencode($bar
);
 echo 
'<a href="mycgi?foo=' htmlentities($query_string) . '">'
;
 
// 결과: <a href="mycgi?foo=foo=%22%2F%3A%40%26%25%3D%3F.%23%22&amp;bar=%23%24%25%3D%2B">

 // ex #2
 
$userinput 'test.php?/mycgi'
;
 echo 
'<a href="mycgi?foo='urlencode($userinput), '">'
;
 
// 결과: <a href="mycgi?foo=test.php%3F%2Fmycgi">
 
?>

예제 (ex #2
 <?php 
 $url
= ""
;
 for(
$i = 0; $i < strlen($value); $i
++) {
     
$url .= strpos("/:@&%=?.#", $value[$i]) === False ? urlencode($value[$i]) : $value[$i
];
 }

 ?>

예제 (ex #3
 <?php
 function fullescape($in
){
     
$out = ''
;
      for (
$i=0;$i<strlen($in);$i
++) {
          
$hex = dechex(ord($in[$i
]));
           if (
$hex==''

             
$out = $out.urlencode($in[$i
]);
           else 
             
$out = $out .'%'.((strlen($hex)==1) ? ('0'.strtoupper($hex)):(strtoupper($hex
))); 
      }
     
$out = str_replace('+','%20',$out
);
     
$out = str_replace('_','%5F',$out
);
     
$out = str_replace('.','%2E',$out
);
     
$out = str_replace('-','%2D',$out
);
  return
$out
;
 }
 ?>

예제 (ex #4
 <?php
 $url
= "index.php?id=4&pg=2"
;
 
$url = urlencode(urlencode($url
));

 echo
"<a href=\"javascript:openWin('page.php?url=$url');\">"
;
 ?>

예제 (ex #5
 <?
 $url
='mypage.php'
;
 ?>
 <a href="index.php?page=<? echo encode($url,5); ?>">My page</a>

 <?
 $mypage
=$_GET['page'
];
 $mypage=decode($mypage,5
);
 echo 
file_get_contents($mypage
);

 function 
encode($ss,$ntime
){
    for(
$i=0;$i<$ntime;$i
++){
        
$ss=base64_encode($ss
);
    }
 retrun $ss
;
 }

 function 
decode($ss,$ntime
){
    for(
$i=0;$i<$ntime;$i
++){
        
$ss=base64_decode($ss
);
    }
 retrun $ss
;
 } 
 
?>

다음은 FTP url를 인코드합니다.

예제 (ex #6
 <?php
 echo '<a href="ftp://user:'rawurlencode('foo @+%/'
), '@ftp.example.com/x.txt">';
 // 결과: <a href="ftp://user:foo%20%40%2B%25%2F@ftp.example.com/x.txt">
 ?>

URL의 PATH_INFO 안에 경로 정보를 전달하고자 한다면, 다음과 같이 처리해 줍니다.

예제 (ex #7
 <?php
 echo '<a href="http://example.com/department_list_script/',
         
rawurlencode('sales and marketing/Miami'), '">'
;
 // 결과: <a href="http://example.com/department_list_script/sales%20and%20marketing%2FMiami">
 ?>

참고로 url 디코드 함수는 주어진 문자열의 %## 인코딩을 디코드해 줍니다. 다만, $_GET 이나 $_REQUEST 변수에는 이미 디코드되어 있어서 따로 디코드할 필요는 없지만, 디코드 할 경우 우리가 원하지 않는 결과를 가져오는 점에 주의가 필요합니다.

관련글:  2011/08/30 - 64진수로 암호화하는 base64 함수
블로그 이미지

하보니

하보니와 함께하는 phP 초보

Tag 암호화

댓글을 달아 주세요

isset은 값이 존재하는지 체크하고, empty 는 값이 비어 있는지 체크합니다.

bool isset ( mixed $var [, mixed $var [, $... ]] ) (PHP 4, PHP 5)

isset은 변수나, 객체만을 체크하고, 여러 변수가 주어지면 순서는 왼쪽에서 오른쪽으로 체크를 합니다.

예제 (ex #1
 <?php
 // $var는 변수를 정의한 것으로 판단합니다.
 $var '';
 if (isset(
$var
)) {
      echo 
"이 변수는 설정되었으므로 출력합니다."
;
 }
 // 결과: 이 변수는 설정되었으므로 출력합니다.


 // 다음은 isset()의 반환값입니다.
 $a "test"
;
 $b "anothertest"
;
 var_dump(isset($a
));     
 
// 결과: true
 var_dump(isset($a$b
)); 
 // 결과: true


 unset (
$a);
 // $a 변수를 지웠으므로 false
 var_dump(isset($a
));     
 
// 결과: false

 // 여러 변수일 경우, 왼쪽에서 오른쪽 순으로 체크하는데,
 // $b 변수가 있어도 $a 변수값은 비어 있으므로 false,
 // $a 변수가 있고, $b 변수가 비어 있어도 false입니다.
 var_dump(isset($a$b)); 
 
// 결과: false


 $foo NULL
;
 var_dump(isset($foo
));   
 
// 결과: false
 ?>

예제 (ex #2
 <?php
 $a 
= array ('test' => 1'hello' => NULL
);

 
var_dump(isset($a['test'])); // 결과: true

 
var_dump(isset($a['foo'])); // 결과: false
 var_dump(isset($a['hello'])); // 결과: false

 // 'hello' 키는 NULL이기에 정의되지 않은 것으로 판단합니다.
 // NULL 키를 확인하려면 array_key_exists 함수를 사용하면 됩니다.
 // 이 함수는 키값을 확인합니다.
 var_dump(array_key_exists('hello'$a)); // 결과: true
 ?>

다음은 자료형 비교는 참고할만 하다 보는데, 좀더 세부적 비교표는 [함수로 연산자비교표]를 참고하면 됩니다.

예제 (ex #3
 <?php
 $x 
null
;
 var_dump(isset($x)); 
// 결과: false

 $x ""
;
 var_dump(isset($x));  
// 결과: true

 $x 
= array();
 var_dump(isset($x));  
// 결과: true

 $x false
;
 var_dump(isset($x));  
// 결과: true

 $x true
;
 var_dump(isset($x));  
// 결과: true

 $x 1
;
 var_dump(isset($x));  
// 결과: true

 $x 42
;
 var_dump(isset($x));  
// 결과: true

 $x 0
;
 var_dump(isset($x));  
// 결과: true

 $x = -1
;
 var_dump(isset($x));  
// 결과: true

 $x "1"
;
 var_dump(isset($x));  
// 결과: true

 $x "0"
;
 var_dump(isset($x));  
// 결과: true

 $x "-1"
;
 var_dump(isset($x));  
// 결과: true

 $x "true"
;
 var_dump(isset($x));  
// 결과: true

 $x "false"
;
 var_dump(isset($x));  
// 결과: true
 ?>

위 예제에서 확인이 되듯 빈 문자열이나 빈 배열인 값을 제외하고자 한다면, 다음과 같이 처리하여야 할 것입니다.

예제 (ex #4
 <?php 
 
function issset($var
){
      
$var trim($var
);
      if((
$var === "") || ($var === array()) || ($var === false
)){
           
$var null
;
      }
      if(isset(
$var
)){
           return 
true
;
      }
      return 
false
;
 }
 
$x ""

 
var_dump(issset($x)); 
// 결과: false
 ?>

다음은 객체 비교 예제입니다.

예제 (ex #5
 <?php
 class 
      function 
__isset($att){ 
          
$props get_object_vars($this); 
           return 
array_key_exists($att$props); 
      } 
 } 

 $x = new T(); 
 $x->foo_exists 4

 var_dump(isset($x->foo_exists)); // 결과: true
 var_dump(isset($x->bar_exists)); // 결과: true

 
?>
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

string strstr ( string $haystack , mixed $needle [, bool $before_needle ] ) (PHP 4, PHP 5)

$before_needle 은 5.3부터 사용가능하며, 반환값은 매치되는 문자열을 반환합니다. 대소문자 구분없이 문자열을 찾고자 한다면, stristr 함수를 사용하면 됩니다.

예제 (ex #1
 <?php
 $email  
'name@test.com'
;
 $domain strstr($email'@'
);
 echo 
$domain
// 결과: @test.com

 // PHP 5.3.0 부터
 $user 
strstr($email'@', true);
 echo $user// 결과: name
 ?>

파일 확장자 php. 도 웹에서 실행가능한 파일로 인식하기 때문에 php?  php.  ?php 를 제한할 필요가 있습니다.

예제 (ex #2
 <?php 
 $file  
'test.gif.bmp.php.';  
 // 대소문자 구분을 위해 stristr 함수를 사용.
 
$ext stristr($file'.'); 
 echo 
$ext// 결과: .gif.bmp.php. 

 
if(eregi("[php|htm|inc]"$ext)){
       echo 
"제한되는 확장자가 포함되어 있습니다.";
 } else {
       echo 
"업로드 가능합니다.";
 } 
 // 결과: 제한되는 확장자가 포함되어 있습니다. 
 
?>

다음은 stripos 를 이용한 처음 문자열을 찾습니다.

예제 (ex #3
 <?php 
 
function userStrstr($haystack$needle
) { 
    
$pos stripos($haystack$needle
); 
    if (
is_int($pos
)) { 
        return 
substr($haystack$pos strlen($needle
)); 
    }  
    return false;
 }  




 $email 'name@test.com'
 
$domain userStrstr($email'@'
); 
 echo 
$domain
// 결과: test.com 
 
?>
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

string strtok ( string $str , string $token ) (PHP 4, PHP 5)

token 의 문자들을 기준으로 문자열(str)을 작은 문자열(토큰)로 나눕니다. 즉, "This is an example string"이라는 문자열이 있을 때, 공백(또는 임의 문자)를 사용하여 각각의 단어로 토큰화 할 수 있지만, explode함수와는 달리 첫 번째 문자열만 나누며, 초기화 하지 않은 strtok로 다음 문자열을 나눕니다.

예제 (ex #1

  <?php
 $string 
"This is\tan example\nstring"
;
 
// 탭과 줄바꿈도 토큰화 문자열로 사용합니다.
 // 공백, 탭, 줄바꿈을 만나면 나눕니다.
 
$tok strtok($string" \n\t"
);

 
// 첫 문자열만 나누어 반환하기 때문에
 // while 반복문으로 다음 문자열을 나눕니다.
 
while ($tok strtok(" \n\t"
)) {
    echo 
"단어 = $tok<br />\n"
;
 }
 
/*
 결과:
 단어 = This
 단어 = is
 단어 = an
 단어 = example
 단어 = string
 */


 // . #을 기준으로 나눕니다.
 
$selector 'div.class#id'
;
 
$tagname strtok($selector,'.#'
);
 echo 
$tagname.'<br/>'
// 결과: div

 
while($tok strtok('.#'
))
 {
      echo 
$tok.'<br/>'
;
 }
 
/*
 결과:
 class
 id
 */
 
?> 


예제 (ex #2

  <?php
 $teststr 
"blah1 blah2/blah3-blah4\\blah5"
;
 
$tok strtok($teststr," /-\\"
);
 while (
$tok strtok(" /-\\"
)){
      echo 
$tok "<br />\n"
;
 }
 
/*
 결과:
 blah1
 blah2
 blah3
 blah4
 blah5
 */
 
?>


도메인, 경로 토큰 예제입니다.

예제 (ex #3

 <?php
 
// : _ /를 만나면 나눕니다.
 // echo $tok; // 결과: http
 
$tok strtok('http://en.wikipedia.org/wiki/Barack_Obama'':_/'
);
 while (
$tok strtok(":_/"
)) {
    echo 
"단어 = $tok<br />\n"
;
 }
 
/*
 결과:
 단어 = en.wikipedia.org
 단어 = wiki
 단어 = Barack
 단어 = Obama
 */


 // echo $tok; // 결과: http
 
$tok strtok('http://habony.tistory.com/admin/entry/post/hard_write'':_/'
);

 echo 
"단어 = " strtok(":_/") . "<br />\n"
// 결과: 단어 = habony.tistory.com
 
echo "단어 = " strtok(":_/") . "<br />\n"
// 결과: 단어 = admin
 
echo "단어 = " strtok(":_/") . "<br />\n"
// 결과: 단어 = entry
 
echo "단어 = " strtok(":_/") . "<br />\n"
// 결과: 단어 = post
 
echo "단어 = " strtok(":_/") . "<br />\n"
// 결과: 단어 = hard
 
echo "단어 = " strtok(":_/") . "<br />\n"
// 결과: 단어 = write

 // 더 이상 나눌 값이 없으므로 false 입니다.
 
echo "단어 = " strtok(":_/") . "<br />\n"
// 결과: 
 
?> 


다음은 토큰 초기화 예제입니다.

예제 (ex #4

  <?php
 $str 
'http://kr.news.yahoo.com/service/news/shellsection.htm?linkid=16'
;

 echo 
strtok($str':_/'); . "<br />\n"
// 결과: http
 
echo strtok(":_/") . "<br />\n"
// 결과: kr.news.yahoo.com
 
echo strtok(":_/") . "<br />\n"
// 결과: service

 // 초기화합니다.
 
echo strtok($str":_/") . "<br />\n"
// 결과: http
 
echo strtok(":_/") . "<br />\n"
// 결과: kr.news.yahoo.com
 
echo strtok(":_/") . "<br />\n"
// 결과: service
 
...
 
?>


이 함수는 성공하면 토큰문자를, 실패하면 false를 반환하지만, 간혹 0 이나 ""와 같은 빈 문자열을 반환할 수 있어서 === 연산자로 확인해 주어야 합니다. 
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

string trim ( string $str [, string $charlist ] ) (PHP 4, PHP 5)

시작 문자와 끝 문자에 다음 표의 공백(또는 특수문자)을 포함하고 있으면, 제거한 문자열을 반환합니다.

 " " (ASCII 32 (0x20))
공백
 "\t" (ASCII 9 (0x09))
 "\n" (ASCII 10 (0x0A))
개행문자
 "\r" (ASCII 13 (0x0D))
캐리지 리턴
 "\0" (ASCII 0 (0x00))
NULL
 "\x0B" (ASCII 11 (0x0B))
수직 탭

charlist 인자는 위 표의 문자가 아닌 다른 임의 문자를 제거하고자 할때 사용합니다.

예제 (ex #1

 <?php
 $text   
"\t\tThese are a few words :) ...  "
;
 
$binary "\x09Example string\x0A"
;
 
$hello  "Hello World"
;
 
var_dump($text$binary$hello
);
 
/*
 결과:
 string(32) "        These are a few words :) ...  "
 string(16) "    Example string
 "
 string(11) "Hello World"
 */


 // "\t\tThese are a few words :) ...  "에서 특수문자, 공백을 제거합니다.
 
$trimmed trim($text
);
 
var_dump($trimmed); 
// 결과: string(28) "These are a few words :) ..."


 // "These are a few words :) ..."에서 "\t', "."문자를 제거합니다.
 
$trimmed trim($text" \t."
);
 
var_dump($trimmed); 
// 결과: string(24) "These are a few words :)"


 // "Hello World"에서 H, d, l, e문자를 제거한 문자를 반환합니다.
 
$trimmed trim($hello"Hdle"
);
 
var_dump($trimmed); 
// 결과: string(5) "o Wor"


 // "\x09Example string\x0A"에서 \x00에서 \x1F까지의 문자를 제거합니다.
 
$clean trim($binary"\x00..\x1F"
);
 
var_dump($clean); 
// 결과: string(14) "Example string"


 // 1부터 9사이의 문자를 제거하며, 범위 지정은 ..로 합니다.
 
$string"1230654789Example string785412369"
;
 
$clean trim($string"1..9"
);
 
var_dump($clean); 
//  결과: string(21) "0654789Example string" 
 
?> 


범위지정 및 특정 문자열 제거는 다음 표를 보면 이해되리라 봅니다.

 0..9
 0부터 9사이 문자를 제거합니다.
 a..z
 a부터 z사이 문자를 제거합니다.
 \x00..\x1F
 \x00~\x1F사이 문자를 제거합니다.
 abcd
 a, b, c, d문자를 제거합니다.
 .
 .문자를 제거합니다.

예제 (ex #2

  <?php
 $text1  
"<b>title name</b>"
;
 
$clean trim($text1"<>"
);
 
var_dump($clean); 
//  결과: string(15) "b>title name</b" 



 
$text2  "&king king"
;
 
$clean trim($text2"&"
);
 
var_dump($clean); 
//  결과: string(9) "king king" 



 
$text3  "(a)"
;
 
$clean trim($text3"()"
);
 
var_dump($clean); 
//  결과: string(1) "a" 



 
$text4  "asdcfvgb,:hnjmkouytyt"
;
 
$clean trim($text4"a..z"
);
 
var_dump($clean); 
//  결과: string(2) ",:" 
 
?>


여기서 시작 부분만 지우고자 할 때는 ltrim함수를 사용하고, 끝 부분만 지우고자 할 때는 rtirm함수를 사용하면 됩니다. 사용방법은 trim함수와 동일하니 설명은 생략하겠습니다.
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

var_dump (PHP 4, PHP 5)

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

var_dump는 변수에 대한 정보를 출력합니다. print_r함수처럼 내부적으로 출력 버퍼링되며 반환값은 갖지 않지만, 반환값이 필요하면 var_export함수를 이용해야 합니다.

 <?php
 $a 
= array (12, array (a"b""c"), "expression""key"=>"value"
);
 
var_dump($a
);

 
/* 출력:
 array(5) { // 배열 갯수 5
  [0] => int(1)
  [1] => int(2)
  [2] => array(3) {
    [0] => string(1) "a"
    [1] => string(1) "b"
    [2] => string(1) "c"
  }
  [3] => string(10) "expression"
  ["key"] => string(5) "value"
 }
 */
 
?>

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

print_r (PHP 4, PHP 5)

mixed print_r ( mixed expr [, bool return ] )

print_r은 배열을 읽기 편하게 출력해 주는 함수로 내부적으로 출력 버퍼링에 의해 키와 원소를 가지런히 보여주는 형식으로 값을 mixed에 출력해 줍니다. 이는 print와는 분명 다르다는 것을 알 수 있습니다. print는 보전된 문자열을 출력해주는 언어구조로 보지만 print_r은 함수로 분류해야 합니다.

 <pre>
 
<?php
 $a 
= array (
   
'a' => 'apple''b' => 'banana'
    'c' => array ('x''y''z'
));
 
print_r ($a
);

 
/* 결과:
 <pre>
 Array
 (
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
 )
 </pre>
 */
 
?>
 </pre>

필요하다면 내부적 출력값을 변수에 저장하여 외부적으로 사용할 수 있습니다. 변수에 저장하고자 할때는 true를 입력해야 하고, 정의하지 않으면 1이라는 값을 가지게 되는데, 내부적으로 버퍼링되어 출력될 것입니다.

 <?php
 
// 외부적 출력값을 변수에 저장할때 true를 정의합니다.
 
$expr 'test'
;
 
$str print_r($exprtrue
);

 echo 
"$str"
// 결과: test

 // 정의하지 않으면 1이라는 값을 갖게 됩니다.
 
$expr 'test'
;
 
$str print_r($expr
);

 echo 
"$str"
// 결과: test 1

 
?>

 <?php
 $b 
= array (
 
'm' => 'monkey'
 
'foo' => 'bar'
 
'x' => array ('x''y''z'
));
 
$results print_r($btrue
);

 echo 
"반환값은 아래와 같습니다. \n"
;
 echo 
$results
;

 
/* 출력:
 반환값은 아래와 같습니다.
 Array
 (
    [m] => monkey
    [foo] => bar
    [x] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
 )
 */
 
?>

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

substr (PHP 4, PHP 5)

이 함수 또한 자주 사용되는 함수로서 문자열의 원하는 일부를 반환하는 함수입니다. 원하는 부분인 문자열의 앞부분이나 뒷부분를 추출해주거나 원하는 위치부터 전부를 추출해주기도 합니다.
 
string substr ( string $string , int $start [, int $length ] )

첫번째 인자는 원본 문자열이고, 두번째 인자는 반환하려는 문자열의 시작위치(0 또는 음수 -1로 지정)를 말합니다. 그리고 마지막 인자는 반환하려는 문자열의 끝 위치를 말하는데, 세번째 인자를 지정하지 않을 경우 지정된 두번째 인자(시작위치부터...)부터 문자열의 전부를 반환합니다.

예제 (ex #1
 <?php
 
// 4번째 문자열부터 3개 문자를 추출
 
print( substr("asdfghjkl"4,3) ); 
// 출력: "ghj"
 
print( substr("If string is less than or equal to start characters long"3. 6) ); 
// 출력: "string"

 // 첫번째 문자열부터 2개 문자를 추출
 
print( substr("If string is less than or equal to start characters long"0,2) ); 
// 출력: "if"

 // 마지막 문자 1개 문자를 추출
 
print ( substr("asdfghjkl", -1) ); 
// 출력: "l"

 // 마지막 문자 2개 문자를 추출
 
print ( substr("asdfghjkl", -2) ); 
// 출력: "kl"

 // 끝에서 세번째 문자 1개를 추출
 
print ( substr("abcdef", -31) ); 
// 출력 "d"

 // 18번째 문자열부터 전부를 추출
 
print( substr("If string is less than or equal to start characters long"18) ); 
// 출력: "than or equal to start characters long"

 // 2번째 문자부터 전부를 추출
 
print ( substr('abcdef'1) ); 
// 출력 "bcdef"

 
?>

substr 함수를 사용하지 않고 배열로 추출할 수 있습니다.

 <?php
 $string 
'abcdef'
;
 echo 
$string[0];                 
// a
 
echo $string[3];                 
// d
 
echo $string[strlen($string)-1]; 
// f
 
?>
블로그 이미지

하보니

하보니와 함께하는 phP 초보

Tag 검색

댓글을 달아 주세요

quotemeta 메타 문자를 인용 (PHP 4, PHP 5)

string quotemeta ( string $str )

{. \ + * ? [ ^ ] ( $ )}의 모든 문자 앞에 백슬래시 문자(\)를 덧붙인 str을 반환합니다.

 
예제 (ex #1
 <?php
  $str 
"Hello world. (can you hear me?)"
;
 echo 
quotemeta($str
);
 
// 출력: Hello world\. \(can you hear me\?\)
 
?>
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요

모든 문자열을 소문자로 변환하는 strtolower 함수

string strtolower (string $str) (PHP 4, PHP 5)

예제 (ex #1
 <?php
 $str 
"Mary Had A Little Lamb and She LOVED It So"
;
 
$str strtolower ($str
);
 
print_r($str
);

 
// 결과: mary had a little lamb and she loved It so
 
?>

인코딩할 문자열을 소문자로 변환하는 함수 (PHP 4 >= 4.3.0, PHP 5)
string mb_strtolower ( string $str [, string $encoding= 인코딩방식 ] )

예제 (ex #1
 <?php
 $str 
"Mary Had A Little Lamb and She LOVED It So"
;
 
$str mb_strtolower ($str'UTF-8'
);
 
print_r($str
);

 
// 결과: mary had a little lamb and she loved It so
 
?>

모든 문자열을 대문자로 변환하는 strtoupper 함수

string
strtoupper ( string $string ) (PHP 4, PHP 5)

예제  (ex #1
 <?php
 $str 
"Mary Had A Little Lamb and She LOVED It So"
;
 
$str strtoupper ($str
);
 
print_r($str
);

 
// 결과: MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
 
?>

인코딩할 문자열을 대문자로 변환하는 함수 (PHP 4 >= 4.3.0, PHP 5)
string mb_strtoupper ( string $str [, string $encoding= 인코딩방식 ] )

예제 (ex #1
 <?php
 $str 
"Mary Had A Little Lamb and She LOVED It So"
;
 
$str mb_strtoupper ($str'UTF-8'
);
 
print_r($str
);

 
// 결과: MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
 
?>

문자열을 대,소문자로 변환하는 mb_convert_case 함수

string mb_convert_case ( string $str , int $mode= MB_CASE_UPPER [, string $encoding= mb_internal_encoding() ] ) (PHP 4 >= 4.3.0, PHP 5)

mode
 MB_CASE_UPPER 는 대문자로 변환
 MB_CASE_LOWER 는 소문자로 변환
 MB_CASE_TITLE 은 단어 첫글자만 대문자로 변환


예제 (ex #1
 <?php
 $str 
"Mary Had A Little Lamb and She LOVED It So"
;
 
$str mb_convert_case ($strMB_CASE_UPPER'UTF-8'
);
 
print_r($str
);

 
// 결과: MARY HAD A LITTLE LAMB AND SHE LOVED IT SO

 
$str "MARY HAD A LITTLE LAMB AND SHE LOVED IT SO"
;
 
$str mb_convert_case ($strMB_CASE_TITLE'UTF-8'
);
 
print_r($str
);

 
// 결과: Mary Had A Little Lamb And She Loved It So
 
?>
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요