dev2013.06.17 14:27

특정 문자열을 치환해야하는데..

str_replace() ..만으로 문자열을 치환하기 곤란한 상황이 있다. 예를 들어 대상문자에 치환문자가 중복등록되어 있다는 경우, 치환문자중의 마지막 문자열만 치환하길 원하는 경우엔 다음과 같이 하면됨.

<?
$str = '김은표...박지현...';
$find = '...';
$replace = '!';
$result = preg_replace(strrev("/$find/"),strrev($replace),strrev($str),1);
echo strrev($result);
?>

결과 :

김은표...박지현!


preg_replace : Perform a regular expression search and replace / 문자열에서 패턴을 추출하거나 바꿀수 있음

http://php.net/manual/en/function.preg-replace.php

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )


<?
$str = "abcdef123456";
echo preg_replace('/[a-z]/', '*', $text);
?>

결과 :

******123456


+ 관련 함수

- str_replace : http://php.net/manual/kr/function.str-replace.php

- strrev : http://php.net/manual/en/function.strrev.php







Posted by 김과장 epkim
dev2013.05.31 11:39

윈도우7 IE9 환경에서 개발했던 사이트의 UI 가  다른 PC 의 IE 환경에서는 깨지는 현상 발생!

에러가 발견되는 IE 의 버전에는 크게 문제가 없는 상황, IE 의 '호환성보기' 가 문제..

<meta http-equiv="X-UA-Compatible" content="IE=5">

<meta http-equiv="X-UA-Compatible" content="IE=6">

<meta http-equiv="X-UA-Compatible" content="IE=7">

<meta http-equiv="X-UA-Compatible" content="IE=8">

<meta http-equiv="X-UA-Compatible" content="IE=9">


가장 최신의 버전 모드는
<meta http-equiv="X-UA-Compatible" content="IE=Edge">


content 속성에 지정할 수 있는 값

* IE=5 (관용모드)
- 지정된 DOCTYPE 에 상관없이 IE5 랜더링 방식이 사용됨.


* IE=7 (IE7 표준모드)
- 지정된 DOCTYPE 에 상관없이 IE7 표준 모드 랜더링 방식이 사용됨.


* IE=EmulateIE7 (IE7 메뉼레이션 모드)
- 지정된 DOCTYPE 에 따라 IE7 표준 모드나 관용 모드의 랜더링 방식이 사용됨 (사실상 IE7 을 흉내냄)


* IE=8 (IE8 표준모드)
- 지정된 DOCTYPE 에 상관없이 IE8 표준모드 랜더링 방식이 사용됨.


* IE=EmulateIE8 (IE8 애뮬레이션 모드)
- 지정된 DOCTYPE 에 따라 IE8 표준모드나 관용모드의 랜더링 방식이 사용됨.


* IE=edge(최신모드)
- 지정된 DOCTYPE 에 상관없이 IE8 이상 버전에서 항상 최신 표준 모드가 사용됨.



새로 개발하는 사이트라면 표준 모드를 사용해야하니깐 IE=8 모드를 지정하는것이 바람직하나, 마이크로소프트는 실험적인 프로젝트가 아닌 이상 IE=edge 모드를 지정할 것을 권장한다. 구식 콘텐츠를 위해 특정 랜더링 엔진을 사용하려면 위의 contents 속성의 다양한 값 중 하나를 지정하면 된다.


Posted by 김과장 epkim
TAG doctype, meta