PHP 문자열 관련 내용
phpinfo(); echo phpversion();
Server PHP Version : 5.3.13p1
- 특정 문자열을 지정한 횟수만큼 반복해서 출력 : string str_repeat(string $input, int $multiplier)
str_repeat(반복하고자 하는 문자열, 반복 횟수);
반복 횟수가 0 또는 음수인 경우 빈 문자열을 반환한다.
활용예 : 단어와 단어 사이에 8칸의 공백 삽입
$spaces = str_repeat(" ",8);
echo "송현".$spaces."컴퓨터학원";
송현 컴퓨터학원
- 문자열 대치 : str_replace($search, $replace,$originalString,$count) ※원본의 내용은 변하지 않음.
str_replace(치환하고자하는 원래 문자열 또는 문자열 배열, 대체할 문자열 또는 배열, 대상 문자열 또는 배열, 치환된 횟수를 반환하는 변수)
활용예1(문자열) : '하이퍼링크'를 모두 '링크'로 대치
$search = "하이퍼링크";
$replace = "링크";
$originalString = "송현 하이퍼링크, 네이버 하이퍼링크, 구글 하이퍼링크";
$replacedString = str_replace($search,$replace,$originalString,$count);
echo "문자열 대치 전 : ". $originalString."<br>";
echo "문자열 대치 후 : ". $replacedString."<br>";
echo "대치 횟수 : ".$count."<br>";
문자열 대치 전 : 송현 하이퍼링크, 네이버 하이퍼링크, 구글 하이퍼링크
문자열 대치 후 : 송현 링크, 네이버 링크, 구글 링크
대치 횟수 : 3
활용예2(문자열 배열) : '하이퍼링크'를 모두 '링크'로 대치 )
$search = "하이퍼링크";
$replace = "링크";
$originalStringArray = array("송현 하이퍼링크","네이버 하이퍼링크", "구글 하이퍼링크","하이퍼링크";
$replacedStringArray = str_replace($search,$replace,$originalStringArray,$count);
echo "문자열 배열 대치 전 : ";
foreach($originalStringArray as $string){
echo $string. ' ';
}
echo "<br>";
echo "문자열 배열 대치 후 : ";
foreach($replacedStringArray as $string) {
echo $string.' ';
}
echo "대치 횟수 : ";
echo $count;
문자열 배열 대치 전 : 송현 하이퍼링크 네이버 하이퍼링크 구글 하이퍼링크 하이퍼링크
문자열 배열 대치 후 : 송현 링크 네이버 링크 구글 링크 링크
대치 횟수 : 4
활용예3(문자열 배열) : 원본 문자열에서 $searchArray와 일치하는 내용을 $replaceArray의 내용으로 대치
$searchArray = array("안동","서울","대구");
$replaceArray = array("054","02","053");
$originalString = "안동 부산 대구 서울 대전";
$replacedString = str_replace($searchArray,$replaceArray,$originalString,$count);
echo "문자열 대치 전 : ".$originalString."<br>";
echo "문자열 대치 후 : ".$replacedString."<br>";
echo "대치 횟수 : ".$count."<br>";
문자열 대치 전 : 안동 부산 대구 서울 대전
문자열 대치 후 : 054 부산 053 02 대전
대치 횟수 : 3
- 문자열에서 특정 문자열이 포함된 횟수 : substr_count(string $hayStack, string $needle, [,int $offset = 0 [,int $length]])
subsrt_count(검색할 대상 문자열, 찾고자하는 문자열, (옵션)검색 시작 위치의 인덱스,(옵션)검색할 문자열의 길이. 기본값은 null이며, 전체 문자열대상으로 검색)
활용예 : '남자' 인원수 )
$hayStack = "남,여,남,남,여";
$needle = "남";
$numberOfMale = substr_count($hayStack,$needle);
echo "문자열의 내용 : ".$hayStack."<br>";
echo "'남' 인원수 : ".$numberOfMale."<br>";
문자열의 내용 : 남,여,남,남,여
'남' 인원수 : 3
- 문자열 위치 : strpos(string $haystack, mixed $needle [,int offset = 0])
strpos(검색할 대상 문자열, 찾고자하는 부분 문자열,검색 시작 위치 기본값은 0)
반환값
부분 문자열이 발견된 경우 : needle이 발견된 위치의 인덱스를 반환.
부분 문자열이 반결되지 않은 경우 : false를 반환.
활용예 : 접속 디바이스 판별 )
요청을 보낸 클라이언트에 대한 정보를 취득
$userAgent = $_SERVER['HTTP_USER_AGENT']
echo $userAgent
CCBot/2.0 (https://commoncrawl.org/faq/)
if(strpos($userAgent,'Mobile') !== false) {
echo "접속 디바이스 : Mobile";
} else {
echo "접속 디바이드 : PC";
}
접속 디바이스 : PC
※strpos : 대소문자 구별, stripos : 대소문자 구별안함.
대소문자 구별없이 찾고자 한다면
stripos($userAgent,'mobile');