송현컴퓨터학원
PHP 문자열 관련 내용
phpinfo(); echo phpversion();
Server PHP Version : 5.3.13p1

  1. 특정 문자열을 지정한 횟수만큼 반복해서 출력 : string str_repeat(string $input, int $multiplier)
  2. str_repeat(반복하고자 하는 문자열, 반복 횟수);
    반복 횟수가 0 또는 음수인 경우 빈 문자열을 반환한다.

    활용예 : 단어와 단어 사이에 8칸의 공백 삽입
    $spaces = str_repeat(" ",8);
    echo "송현".$spaces."컴퓨터학원";

    송현        컴퓨터학원


  3. 문자열 대치 : str_replace($search, $replace,$originalString,$count) ※원본의 내용은 변하지 않음.
  4. 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


  5. 문자열에서 특정 문자열이 포함된 횟수 : substr_count(string $hayStack, string $needle, [,int $offset = 0 [,int $length]])
  6. subsrt_count(검색할 대상 문자열, 찾고자하는 문자열, (옵션)검색 시작 위치의 인덱스,(옵션)검색할 문자열의 길이. 기본값은 null이며, 전체 문자열대상으로 검색)

    활용예 : '남자' 인원수 )
    $hayStack = "남,여,남,남,여";
    $needle = "남";
    $numberOfMale = substr_count($hayStack,$needle);

    echo "문자열의 내용 : ".$hayStack."<br>";
    echo "'남' 인원수 : ".$numberOfMale."<br>";


    문자열의 내용 : 남,여,남,남,여
    '남' 인원수 : 3


  7. 문자열 위치 : strpos(string $haystack, mixed $needle [,int offset = 0])
  8. 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');