홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
텍스트(숫자)를 이미지로 바꾸기~
10년 전
텍스트 형태인 숫자를 이미지로 바꾸기 입니다.

카운터 같은곳에서 유용하게 사용할수 있겠죠~?

str_replace()라는 함수가 있습니다.
이름그대로 문자열(string)을 바꾸는(replace)함수인데...
사용법은....

str_replace(바꿀문자,바뀔문자,찾을문자열);

간단한 예를 한번 들어보죠...

<?
$word="a";
$word=str_replace("a","b",$word);
echo $word;
?>

변수 $word에는 a라는 문자열이 들어갔죠...
str_replace("a","b",$word)에서 보면......
a를 b로 바꾸겠다....이겁니다....어디에서? $word라는 문자열에서죠..
결국...$word="b"가 된거죠....이해가시죠?

다음 예제로 볼까요?

<?
$word="12345";
$word=str_replace("1","일",$word);
echo $word;
?>

비슷한 예제 입니다.
$word에는 12345가 들어가있는데.....1을 "일"로 바꾼답니다.
결과는?

네에 "일2345"가 되죠..... ^^쉬운겁니다.

그럼 좀 다르게 해볼까요?

<?
$word="12345";
$word=str_replace("1","<img src=1.gif>",$word);
echo $word;
?>

요건 뭘까요?
위예제랑 같은거죠...그런데 1을 <img src=1.gif>로 바꾼답니다.
결과는?

1.gif라는 이미지가 찍히고 뒤에 2345가 붙을겁니다.
(물론 1.gif라는 이미지가 미리 있어야 겠죠...)

자 그럼......이미지를 만듭니다.
크기야 어찌됐든......0.gif에는 0을 쓰고....1.gif에는 1을 씁니다...
이렇게 0.gif부터 9.gif까지 만들어 저장합니다.

그리고 나서 그냥 위에 했던 방법처럼 0부터 시작해서 gif파일로 바꿔주면 됩니다.......

한번 해보죠 그럼

<?
$word="12345";
$word=str_replace("0","<img src=0.gif>",$word);
$word=str_replace("1","<img src=1.gif>",$word);
$word=str_replace("2","<img src=2.gif>",$word);
$word=str_replace("3","<img src=3.gif>",$word);
$word=str_replace("4","<img src=4.gif>",$word);
$word=str_replace("5","<img src=5.gif>",$word);
$word=str_replace("6","<img src=6.gif>",$word);
$word=str_replace("7","<img src=7.gif>",$word);
$word=str_replace("8","<img src=8.gif>",$word);
$word=str_replace("9","<img src=9.gif>",$word);
echo $word;
?>

자 끝입니다........
0부터 9까지......모조리 검사해서 숫자를 <img>태그로 바꿔주는 거죠;;

근데 이렇게 하면 -_-;;무식하단 소리 듣습니다;;;
우리 배웠던거중에 for문이라고 있었죠....그거 함 써볼까요~^^

<?
$word="12345";

for($i=0;$i<=9;$i++)
{
$word=str_replace("$i","<img src=${i}.gif>",$word);
}

echo $word;
?>

요롷게 간단하게 끝납니다.
for문으로 $i를 0에서 9까지 돌리고.....
str_replace()함수로 샤샤샥 바꿔주는거죠...

요기까지............할라고 그랬는데;;;
요 소스에는 몇가지 문제점이 발생할 수가 있습니다.....^^그래서 알려드릴려고...

먼저 한가지 더 생각해 볼까요?
이미지 파일이 /image라는 폴더에 있습니다.
그럼 치환을....

$word=str_replace("$i","<img src=image/${i}.gif>",$word);

이렇게 하면 되겠죠...
그런데....만약 이미지가 /image2 라는 폴더에 있다면.....

$word=str_replace("$i","<img src=image2/${i}.gif>",$word);

이렇게 하면 될까요?
-_-절대 안됩니다...........

이유는....str_replace에서 image2이라는 폴더 이름까지 1이 <img>태그로 바뀌어 버린다는거죵;;;;;그쵸^^?

잘 따져보세요.....

12345라는 숫자가 0부터 변환을 시작합니다.....
12345 -> 0을 변환 -> 12345
12345 -> 1을 변환 -> <img src=image2/1.gif>2345
<img src=image2/1.gif>2345 -> 2를 변환 -> <img src=image2/1.gif><img src=image2/2.gif>345

이렇게 나가야 정상이지만 그렇지가 않겠죠...
<img src=image2/1.gif>2345 에서의 image2의 2까지 <img src=image2/2.gif>로 바뀌어 버립니다...

때문에 태그가 엉켜서 -_-거기서 끝이죠;;;
소스 개판됩니다......

그래서 이럴경우에는.....임의로 지정을 해주면 좀더 간단합니다.
예를 들면 str_replace("2","<img 2>",$word) 와 같이...임의의 문자로 치환해준다음에 다시 완전한 태그로 치환해줍니다.
str_replace("<img 2>","<img src=image2/2.gif>",$word)
요롷게 말이죠....

아래 완성된 소스입니다.

<?
$word="12345";

for($i=0;$i<=9;$i++)
{
$word=str_replace("$i","<img ${i}>",$word);
}

for($i=0;$i<=9;$i++)
{
$word=str_replace("<img ${i}>","<img src=image2/${i}>",$word);
}

echo $word;
?>

요롷게 한번 더 치환해주면 됩니다.

이런 방법 말고도.....substr()함수를 이용한 방법도 있습니다.
^^더 좋은 방법을 생각해보세요~
추천추천 : 301 추천 목록
번호 제목
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
3,010
 iframe 높이 100% 맞추기
3,009
 curl 함수를 이용한 HTTP REFERER 변경
3,008
 윈도우10 시스템 파일 및 Dism 검사
3,007
 텍스트 줄바꿈, 글자자르기 CSS
3,006
 jQuery Mobile에서 유용한 코드 10가지.
3,005
 [PHP] dirname()함수와 $_SERVER 관련 상수들
3,004
 [PHP] 파일 크기, 사이즈 불러오는 함수, filesize()
3,003
 [jQuery] jQuery Quick API
3,002
 [ transition ] 링크 hover 색상 변화 속도 조절
3,001
 PHP 5.3.0 에서 사라진 함수들 대체
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.