본문 바로가기

PHP/PHP함수

글자수, 글자추출 strlen(), substr(), explode()

글자를 나누는 함수입니다.

strlen() 함수는 글자의 갯수와 위치를 기반으로 선택합니다.

strlen은 아마 string(컴퓨터에서 문자열을 나타냄) + length(길이) 를 줄여서 쓴걸로 보입니다.

즉 문자열의 길이와 관련된 함수죠.


사용법:

strlen("문자열") 이런 형식이죠.

예를 보죠.

strlen('풍선이 하늘을 날다')

이렇게 작성하면 "풍선이 하늘을 날다" 의 문자열 길이를 변환(즉 길이)값을 돌려줍니다. 돌려준다는 말은

'알려준다' '표시한다'로 받아들이면 됩니다. 

왜 돌려준다는 말을 쓰느냐하면 "strlen('풍선이 하늘을 날다')" 이렇게 컴퓨터에 질문을 보냅니다.

그럼 컴퓨터에서는 저 코드(문구)를 보고 해서해서 저기에 해당하는 값 

즉 질문에 해당하는 strlen() 함수의 질문 '풍선이 하늘을 날다' 요글자 수는 몇자? 라고 물으면

컴에서는 저 질문에 대한 답을 돌려줍니다.

질문을 주고 대답을 돌려받는 겁니다.

이렇게 이해하면 되겠네요.

물건을 빌려주고 다시 돌려받는다.

주로 컴의 동작원리는 (질문)주고 (대답,값을)돌려받는 겁니다.

strlen()함수는 영문과숫자는 잘 표시해 줍니다.

그러나 한글을 해보시면 전혀다른 길이나 표시됩니다.


[참고]

UTF-8 : 한글 => 2byte

EUC-KR : 한글 => 3byte

한글자가 위 값으로 계산되어집니다.

  

너무 옆으로 샜는데

다시 돌아와서

strlen()함수를 써서 길이를 알았으면

이제 짤라야죠.

필요한 부분만...

'I am boy' 여기서 'am'만 표시하고(가져오고) 싶다.

그러면 substr을 씁니다.

str은 위에서처럼 string겠죠.

 

i 요기까지 1자

공백 1자

am 2자

다시 공백 1자

boy 3자

공백도 자리에 포함됩니다. 꼭 주의^^


그럼 strlen('I am boy') 값은 8자가 됩니다.


그럼 3자리부터 2자리 가져오면 'am'을 가져올수 있겠죠.

원하는 글자를 가져올려면 substr()함수를 씁니다.

substr('문자열',시작위치,가져올 문자의 갯수) 입니다.

substr('I am boy',2,2)

첫짜리는 0부터 시작합니다.

그래서 'a'자리는 2가됩니다.

I가 0번째

공백이 1번째

a가 2번째

순서가 0으로 시작하니깐 3번째 자리를 가져올려면

0, 1, 2가 되어 2를 적어줍니다.

뒤에 2는 자리갯수입니다.

am이 2자니깐 2자리를 가져오라고 2를 적습니다.


explode()함수는 어떤 기준으로 글자를 자르는 함수입니다.

특히 전화번호, 우편번호를 자를때 필요하겠죠.

형식이 딱 정해진 값들을 자를때 유용합니다.


explode는 폭발하다는 뜻입니다.

그래서 즉 어떤 기준으로 글자를 폭파해서 헤쳐모임입니다.

전화번호를 기준으로 하면

010-1234-5678일때

'-'를 기준으로 번호를 추출해 볼까요

explode('-', '010-1234-5678')

이렇게 선언합니다.

explode(구획문자(delimiter), 문자열(string))

이런 형식입니다.


실사용시 코드는

$cellphone = "010-1234-5678";

$phoneNumber = explode('-', $cellPhone);

echo $phoneNumber[0]."<br>";

echo $phoneNumber[1]."<br>";

echo $phoneNumber[2]."<br>";


이렇게 됩니다. explode()함수는 배열(Array)로 값을 돌려줍니다.

그래서 값을 표시할때는 배열로 표기합니다.

즉 phoneNumber[0]식입니다.


아래는 소스입니다.

<?

$cellPhone = "010-1234-5678";

$phoneNumber = explode('-',$cellPhone);


echo $phoneNumber[0]."<br>";

echo $phoneNumber[1]."<br>";

echo $phoneNumber[2]."<br>";


    // 반복문 for문 사용예

for($i=0; $i<3; $i++){

echo $phoneNumber[$i]."<br>";

}

?>




아래는 또 다른 예)


<?php

$cellphone = "010-1234-5678";

$telLangth = strlen($cellphone);


echo "tel번호: {$cellphone} <br> 길이: {$telLangth} <br>";


$cellphone1 = substr($cellphone,0,3);

$cellphone2 = substr($cellphone,4,4);

$cellphone3 = substr($cellphone,9,4);


echo "substr()함수사용시 값: $cellphone1 $cellphone2 $cellphone3 <br>";


$mobilephone = explode("-",$cellphone);


echo "explode()함수사용시 값: $mobilephone[0] $mobilephone[1] $mobilephone[2]";

?>



------------결과-------------------


tel번호: 010-1234-5678 
길이: 13 
substr()함수사용시 값: 010 1234 5678 
explode()함수사용시 값: 010 1234 5678

'PHP > PHP함수' 카테고리의 다른 글

session_regenerate_id  (0) 2017.11.14
sprintf(), hash(), uniqid();  (0) 2017.11.13
$_SERVER 함수  (0) 2017.11.13
define() 초기설정값 셋팅  (1) 2017.11.12
ceil(), floor(), round() 반올림 처리하는 함수들  (1) 2014.10.31