간단하게 아래처럼 숫자 외의 문자를 제거하면 됩니다.
$aaa = '1<as>d23adasd';
$aaa = preg_replace('/[^\d]/','',$aaa);
echo $aaa; // 123
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━【for】━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
참고로 덧붙입니다. for() 사용하려면 차라리 아래처럼 하세요.
$new = '';
$len = strlen($aaa);
for ($i=0;$i<$len;$i++) if ( is_numeric($aaa[$i]) ) $new.= $aaa[$i];
echo $new; // 123
↓ 첫 조건에 같이 넣어둘 수 있습니다.
$aaa = '1<as>d23adasd';
for($i=0,$new='',$len=strlen($aaa);$i<$len;$i++)if(is_numeric($aaa[$i]))$new.=$aaa[$i];
echo $new; // 123
────────────────────────────────────────
문자열 길면 배열 사용도 좋습니다.
$aaa = '1<as>d23adasd';
$temp = array(); // 배열
$len = strlen($aaa);
for($i=0;$i<$len;$i++)if(is_numeric($aaa[$i]))$temp[]=$aaa[$i]; // 숫자면 배열에 추가
$aaa = implode('',$temp); // 배열 묶기
echo $aaa; // 123
────────────────────────────────────────
추가 코드 덧붙입니다.
$aaa = '1<as>d23adasd'; // 대상 문자열
$test = range(0,9); // 0,1,2,3,4,5,6,7,8,9 배열 ★
$test = array_flip($test); // 배열 뒤집기 (순서가 같지만 나중에 일부 문자열 대상 활용 가능합니다.
$len = strlen($aaa); // 문자열의 길이
$temp = array(); // 문자열로 결합하거나, 배열로 추가해 묶거나 약간의 차이가 있는데 편한 방법 사용
for ($i=0;$i<$len;$i++)
{
if ( isset($test[$aaa[$i]]) ) $temp[] = $aaa[$i]; // 변수 정의되어 있으면 배열 추가 ☆
}
$aaa = implode('',$temp); // 배열 묶기
echo $aaa; // 123
★ 표시의 배열 값을 바꾸면 해당 배열에 쓰인 문자만 걸러낼 수 있습니다.
$test = array('a','e','i','o','u'); // 편하게 $test = explode(' ','a e i o u');
이렇게 하면 지정한 문자만 남습니다. ☆ 조건을 변경하면 지정한 문자 외의 문자만 남길 수 있지요.
if ( !isset($test[$aaa[$i]]) ) $temp[] = $aaa[$i]; // isset 앞에 ! 붙여 반대로
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
참고로 그냥 기본적인 코드였습니다.
참고 링크 덧붙입니다.
is_numeric()
http://php.net/manual/kr/function.is-numeric.php [한글 구 버전]
http://php.net/manual/en/function.is-numeric.php
기타 댓글에 쓰인 함수를 찾아 설명 및 예제를 보면 도움이 많이 될 거에요.
"언어 레퍼런스"는 즐겨찾기 필수입니다.
http://php.net/manual/kr/langref.php
http://php.net/manual/en/langref.php
$aaa = '1<as>d23adasd';
$aaa = preg_replace('/[^\d]/','',$aaa);
echo $aaa; // 123
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━【for】━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
참고로 덧붙입니다. for() 사용하려면 차라리 아래처럼 하세요.
$new = '';
$len = strlen($aaa);
for ($i=0;$i<$len;$i++) if ( is_numeric($aaa[$i]) ) $new.= $aaa[$i];
echo $new; // 123
↓ 첫 조건에 같이 넣어둘 수 있습니다.
$aaa = '1<as>d23adasd';
for($i=0,$new='',$len=strlen($aaa);$i<$len;$i++)if(is_numeric($aaa[$i]))$new.=$aaa[$i];
echo $new; // 123
────────────────────────────────────────
문자열 길면 배열 사용도 좋습니다.
$aaa = '1<as>d23adasd';
$temp = array(); // 배열
$len = strlen($aaa);
for($i=0;$i<$len;$i++)if(is_numeric($aaa[$i]))$temp[]=$aaa[$i]; // 숫자면 배열에 추가
$aaa = implode('',$temp); // 배열 묶기
echo $aaa; // 123
────────────────────────────────────────
추가 코드 덧붙입니다.
$aaa = '1<as>d23adasd'; // 대상 문자열
$test = range(0,9); // 0,1,2,3,4,5,6,7,8,9 배열 ★
$test = array_flip($test); // 배열 뒤집기 (순서가 같지만 나중에 일부 문자열 대상 활용 가능합니다.
$len = strlen($aaa); // 문자열의 길이
$temp = array(); // 문자열로 결합하거나, 배열로 추가해 묶거나 약간의 차이가 있는데 편한 방법 사용
for ($i=0;$i<$len;$i++)
{
if ( isset($test[$aaa[$i]]) ) $temp[] = $aaa[$i]; // 변수 정의되어 있으면 배열 추가 ☆
}
$aaa = implode('',$temp); // 배열 묶기
echo $aaa; // 123
★ 표시의 배열 값을 바꾸면 해당 배열에 쓰인 문자만 걸러낼 수 있습니다.
$test = array('a','e','i','o','u'); // 편하게 $test = explode(' ','a e i o u');
이렇게 하면 지정한 문자만 남습니다. ☆ 조건을 변경하면 지정한 문자 외의 문자만 남길 수 있지요.
if ( !isset($test[$aaa[$i]]) ) $temp[] = $aaa[$i]; // isset 앞에 ! 붙여 반대로
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
참고로 그냥 기본적인 코드였습니다.
참고 링크 덧붙입니다.
is_numeric()
http://php.net/manual/kr/function.is-numeric.php [한글 구 버전]
http://php.net/manual/en/function.is-numeric.php
기타 댓글에 쓰인 함수를 찾아 설명 및 예제를 보면 도움이 많이 될 거에요.
"언어 레퍼런스"는 즐겨찾기 필수입니다.
http://php.net/manual/kr/langref.php
http://php.net/manual/en/langref.php
'스크립트 > Php 코드 팁' 카테고리의 다른 글
php에서 exel 저장시 타입을 style에 추가해서 지정할수있다. (0) | 2011.12.20 |
---|---|
모바일 페이지 meta 테그 (1) | 2011.11.23 |
폴더에서 php 나 html 파일을 실행하지 못하게 하려면 (0) | 2011.06.21 |
-등 특수문자 빼고 숫자만 남기기 (0) | 2011.04.30 |
php 날짜 구하기 두번째. (0) | 2011.01.31 |