php 정규식 하나만 부탁할께요 ㅠ..ㅠ > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

php 정규식 하나만 부탁할께요 ㅠ..ㅠ 정보

php 정규식 하나만 부탁할께요 ㅠ..ㅠ

본문

그래픽 편집기에서 글을 쓰다가 보면 외부의 웹페이지를 긁어서 붙이는 경우가 있어요.
대부분은 문제가 없는데 <textarea> ... </textarea> 가 있는 부분이 들어오게 되면
답글을 달 때 문제가 생기게 됩니다.

phpschool을 찾아보니까... 답글을 달아줄 때... 안에 들어가는 내용에서

<textarea name="content" cols="32" rows="4">---></textarea>를

아래처럼 바꾸면 된다고 하더라구요.

&lt;textarea name="content" cols="32" rows="4"&gt;
---&gt;
&lt;/textarea&gt;

이것을 한번에 싹 바꿔버리는 방법 없나요??? php 정규식이 넘 어려워서 엄두가 안나네요.
  • 복사

댓글 전체

htmlspecialchars 는
 <textarea name="content" cols="32" rows="4">---></textarea>
이내용이 그대로 들어가므로 에러가 발생할수도 있을것 같구요..

htmlentities() 로 하시면 문자 엔티티에 존재하는 모든 문자를 엔티티로 변환하므로
 htmlentities() 를 쓰시면 되겟네요
그렇게 하면 문제가 있어요. 예를 들어 작성한 글에 외부에서 퍼옴 홈피 내용이
들어 있고 그 홈피내용중에 textarea가 있는 경우 입니다.
그런데 htmlentities를 써버리면 전체가 다 plain html 코드가 되어서 퍼온 화면이
보이는게 아니라 그 화면의 html code가 보이게 되는 겁니다.

쉬운거면 제가 고민을 안하죠 ㅠ..ㅠ
이렇게 해보세요..

$str = "<h3>hi</h3>abcdefg<br><p>aaa</p>
<textarea name=\"content\" cols=\"32\" rows=\"4\">---></textarea>";

$str = preg_replace("/<textarea(.*)>/iUs", "&lt;textarea\\1&gt;", $str);
$str = preg_replace("/<\/textarea>/iUs", "&lt;/textarea&gt;", $str);
<?
$x = '<a>sdfsfsdf<textarea name="content" cols="32" rows="4">---></textarea>sdfsdfdsf</a>';

echo preg_replace("/<(textarea[^>]*)>([^<]*)<(\/textarea)>/i", "&lt;$1&gt;\n$2\n&lt;$3&gt;", $x);
?>

$2 가 조금 헷갈리네요.

머리가 아파서 여기까지만 올리겠습니다.
일단 나창호님께 cheditor에 데이타를 초기화 할 때 변경을 해달라고 했습니다. ㅠ..ㅠ
이거 때문에 웹문서 편집기에 textarea가 있는거 수정할 때 문제가 생기더라구요.

저는 <textarea>를 <table><tr><td> ... </td></tr></table> 로 바꿔보려구요.
© SIRSOFT
현재 페이지 제일 처음으로