Developer_hong

PHP 정규식 본문

프로그래밍/PHP

PHP 정규식

Developer_hong 2021. 5. 11. 14:51
반응형

//preg_match_all : 정규표현식에 맞으면 배열로 추출

// 정규식
// (...) 그룹화 시작 끝
// [a-zA-Z0-9_-]허용하는 문자열 a부터 z까지, A부터 Z까지 0부터 9까지 그리고 언더스코어와 하이픈
// [a-zA-Z0-9_-]+ 허용하는 문자열 a부터 z까지, A부터 Z까지 0부터 9까지 그리고 언더스코어와 하이픈이 1개 이상 있어야함
// [a-zA-Z0-9_-]{3,8} 허용하는 문자열 a부터 z까지, A부터 Z까지 0부터 9까지 그리고 언더스코어와 하이픈이 3글자 이상, 8글자 이하
// + == {1} 해당 문자열 1번
// * == {0} 해당 문자열 0번
// ? 해당 문자 패턴이 0 또는 1번 등장 ex) /a?b/ = b, ab
// . 줄 바꿈 문자 (\n) 제외한 임의의 한 문자를 의미 ex) /.ap/ = aap, bap, @ap

// 패턴 변경자
// i - 대소문자 비교 없이 검사
// s - \n 개행문자도 포함하여 검사
// m - 정규식에서는 줄 바꿈은 무시되는데 , 줄바꿈을 적용하여 검사 (한 줄의 시작 ^ , 한 줄의 끝 $ 에서 유용)
// x - 공백 문자를 찾지 않고 무시

 

 

// 두 문자는 같은 주소인지 체크

$href = "https://m.naver.com/123";

$text = "hTtps://wWw.nAver.com/123";

$is_same = false;

 

echo "\nreplace text = ".$text;
echo "\nreplace href = ".$href;

 

 

/**--------------------------------------------------------------
| 작업 1.
| http:// , https:// , ftp:// 제거 ( 대소문자 비교 필요 )
| ^(https?)\:\/\/ 's'는 생략 가능 , ^ 줄의 시작 검사 , / 문자 Escape
--------------------------------------------------------------*/
$text = preg_replace('#^(https?|ftp)\:\/\/#','',strtolower($text)); // text 작업1 진행
$href = preg_replace('#^(https?|ftp)\:\/\/#','',strtolower($href)); // href 작업1 진행
echo "\n\n :::: 작업 1 ( http:// , https:// , ftp:// 제거 ) 실행 결과 ::::";
echo "\nreplace text = ".$text;
echo "\nreplace href = ".$href;

 

if(strcmp($href,$text)){ //strcmp 문자 비교하여 불일치 : 1, 일치 : 0 반환
/**--------------------------------------------------------------
| 작업 2.
| www. 또는 m. 제거
--------------------------------------------------------------*/
$text = preg_replace('#^(www.|m.)#','',strtolower($text)); // text 작업2 진행
$href = preg_replace('#^(www.|m.)#','',strtolower($href)); // href 작업2 진행
echo "\n\n :::: 작업 2 ( www. 또는 m. 제거 ) 실행 결과 ::::";
echo "\nreplace text = ".$text;
echo "\nreplace href = ".$href;

}

/**--------------------------------------------------------------
| 결과
--------------------------------------------------------------*/

if(strcmp($href,$text)){ 

 $is_same=true;

}

echo "\n\n :::: 최종 결과 ::::";
echo "\nis_same = "; echo $is_same ? 'TRUE ( URL 다름 )' : 'FALSE ( URL 같음 )';

반응형

'프로그래밍 > PHP' 카테고리의 다른 글

Redirect 체크  (0) 2021.05.12
PHP Magic Constant  (0) 2021.05.12
PHP 해당 월 마지막일 구하기, 시간비교  (0) 2021.05.11
PHP 시간 체크  (0) 2021.05.11