현재 제가 하고 있는 건 간략한 위키 엔진을 짜 보는게 목적입니다. 위에서는 생략되었으나 위에 $data['db']로 위키 내용을 담아오는 쿼리가 있습니다.
그래서 내용 중의 제목을 위키 내에서 =제목1=
로 표시하고, html 코드로 php가 치환해 주어 <h2>제목</h2>
가 되도록 만드는 게 하고 싶습니다.
위키 자체가 만들면 워낙 문법이 많고 우선 순위가 있는 지라 배열로 저렇게 썼습니다.
나머지는 preg_replace로 처리하면 속도만 느려질 것 같으니 다시 str_replace로 되돌릴 생각입니다.
배열은 str_replace에서 사용시 순서대로 처리되고, 건너뛰어도 문제 없는 걸 보아 상관 없을 것 같습니다.
질문이 =aaa= => aaa =aaaaa=
질문이
=aaa= => aaa
=aaaaa= => aaaa
=b= => b
=abc= => abc
이렇게 되는 것을 원하는 건가요? 그렇다면 str_replace로는 힘들고 정규식을 이용해야 합니다.
와 같이 하시면 됩니다.
특정 조건을 만족할 때 특정되는 문자만 바꾼다고 한 건데,, 참고 될 것 같습니다.
$data='abcdaa=aaa=asdfvb=bac=as';
일 때 어떤 결과를 거치면
와 같이 나타나는 걸 물어보려 한 건데,,
적어주신 정규식을 응용하면 가능할 것 같네요.
생각하는 대로 안되네요..
흰화면만 뜨네요.. 어디서부터 잘못되었는지 모르겠습니다.
일단 php 에서 escape character 들은
일단 php 에서 escape character 들은 single quoting 할 경우 즉 '\r' 로 하면 \ + r 로 인식이 됩니다. 그러므로 "\r"과 같이 double quoting 해 주셔야 원하는 대로 치환이 될 겁니다.
그리고, preg_replace에서 배열로 처리할 경우, 배열 순서대로 실행이 되는데, 위와 같이 배열 번호를 순서대로 하지 않았을 경우 어떻게 동작할지 모르겠네요. 저렇게 코드를 짜 본적이 없어서 ^^;
그리고, 원하시는 바를 정확히 모르겠어서 코드를 수정해 드리기는 힘드네요 :-) 원본과 결과물을 정확하게 표시해 주시면 코드 수정이 쉽게 가능할지도..
계속 도움 주셔서 감사드립니다.
현재 제가 하고 있는 건 간략한 위키 엔진을 짜 보는게 목적입니다. 위에서는 생략되었으나 위에 $data['db']로 위키 내용을 담아오는 쿼리가 있습니다.
그래서 내용 중의 제목을 위키 내에서
=제목1=
로 표시하고, html 코드로 php가 치환해 주어
<h2>제목</h2>
가 되도록 만드는 게 하고 싶습니다.
위키 자체가 만들면 워낙 문법이 많고 우선 순위가 있는 지라 배열로 저렇게 썼습니다.
나머지는 preg_replace로 처리하면 속도만 느려질 것 같으니 다시 str_replace로 되돌릴 생각입니다.
배열은 str_replace에서 사용시 순서대로 처리되고, 건너뛰어도 문제 없는 걸 보아 상관 없을 것 같습니다.
<요약>
=제목1= → <h2>제목</h2>
흰 화면만 나온다면 E_ERROR가 발생했을 수도
흰 화면만 나온다면 E_ERROR가 발생했을 수도 있겠네요. 예를 들어
$grammar[108] = '/[[/';
의 경우, pcre compile error가 발생할 겁니다.
$grammar[108] = '/\[\[/';
이렇게 해 주셔야 합니다. 정규식에서 [] 문자는 pattern을 만드는데 사용하는 예약어이기 때문에 escape을 해 주셔야 합니다. 일단 아무것도 안나온다고 하니, 이 문제가 아닐까 싶네요.
preg_replace문에 문제가 있는 것 같습니다.
제 php 엔진이 문제인지는 모르겠지만 preg_replace를 스킵하는 것 같네요.
$data['db'] echo 하니 제대로 뜨는데 $temp echo 하니 나머지는 다 되는데 $temp가 텅 비었어요.
아니면 preg_replace에서의 배열이 문제일까요
이거도 참고해보세요.
http://search.naver.com/search.naver?ie=utf8&sm=stp_hty&where=se&query=php+replace
http://php.net/manual/kr/function.preg-replace.php
http://php.net/manual/kr/function.preg-match.php
http://php.net/manual/kr/function.preg-replace-callback.php
http://php.net/manual/kr/function.preg-split.php
http://php.net/manual/kr/function.str-replace.php
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기