삽질의 현장/- PHP

[삽잡이::php]글자를 쪼개보자! substr( ), explode( )

shovelman 2016. 6. 15. 22:11



Web에서 놀다보면

문자열을 가지고 놀아야할 때가 

너무나도 많습니다.


예를 들어 브라우저에 뿌려진 값들을 

DB에 값을 저장하려고 하는데

한 문장안에서 여러 요소들을 뽑아낼 때?!


 


뭐... 예를 들어... 요즘(?) 유행하는 해시태그에서 

데이터를 추출해야한다고 해봅시다.

#을 기준으로 문자를 뽑으면 되겠지요.


너무 이상한 예시인가....

시무룩... 


그냥 이런식으로도 

뽑을 수 있는 경우가 생길 수도 있다는 것입니다...


아무튼! 정신을 다시 차리고!


php에서는 이렇게 문자들을 뽑아먹을 수 있는 

여러 메서드들이 존재합니다.


우선, substr 메서드를 살펴보겠습니다.



(출처_ PHP)


해당 함수는 문자열을 첫번째 인자로 받고

추출할 문자열의 시작부터 그 길이까지 인자로 넣어주면

그 조건에 맞는 문자열을 반환해줍니다.


다른 메서드들도 있습니다.

explode 메서드를 살펴보겠습니다.



얘는 한글로 나오네.... 허허...


아무튼 explode 메서드는 

첫번째 인자로 들어온 문자열로 문자열들을 끊어서 

배열 형태로 return 하게 됩니다.


합치는 것은 반대말인 implode 메서드이겠지요?

반대로 생각하시면 됩니다.

합치겠지요 하하하...


너무 날로 먹는거 아냐... 


아무튼 substr(), explode() 메서드를 통해 

간단하게 실습 하나 해보겠습니다.


아래의 예시를 통해 와닿게 느껴봅시다~


1
2
3
4
5
6
7
8
9
$sString = "[shovelman.tistory.com_삽잡이_shovelman]";
$aSapInfo = explode('_', $sString);
$sSapBlogAddress = substr($aSapInfo[0], 1);
$sSapNameKor = substr($aSapInfo[1], 0);
$sSapNameEng = substr($aSapInfo[2], 0, -1);
 
echo $sSapBlogAddress."<br />";
echo $sSapNameKor."<br />";
echo $sSapNameEng."<br />";
cs



이처럼

[shovelman.tistory.com_삽잡이_shovelman] 이라는 문자열을 

'_'를 기준으로 나누어 

화면에 뿌려주는 아주 간단한 코드입니다.



이렇게 뿌려지는 것이지요.



매우 간단하게 코드를 작성했지만, 

활용도는 무긍무진합니다.


또한, 

정규 표현식을 사용해서 문자열 Parsing도 가능합니다.

요놈은 다음 시간에 알아보도록 하겠습니다.


굳~