php 정규식 하나만 부탁할께요 ㅠ..ㅠ 정보
php 정규식 하나만 부탁할께요 ㅠ..ㅠ본문
그래픽 편집기에서 글을 쓰다가 보면 외부의 웹페이지를 긁어서 붙이는 경우가 있어요.
대부분은 문제가 없는데 <textarea> ... </textarea> 가 있는 부분이 들어오게 되면
답글을 달 때 문제가 생기게 됩니다.
phpschool을 찾아보니까... 답글을 달아줄 때... 안에 들어가는 내용에서
<textarea name="content" cols="32" rows="4">---></textarea>를
아래처럼 바꾸면 된다고 하더라구요.
<textarea name="content" cols="32" rows="4">
--->
</textarea>
이것을 한번에 싹 바꿔버리는 방법 없나요??? php 정규식이 넘 어려워서 엄두가 안나네요.
대부분은 문제가 없는데 <textarea> ... </textarea> 가 있는 부분이 들어오게 되면
답글을 달 때 문제가 생기게 됩니다.
phpschool을 찾아보니까... 답글을 달아줄 때... 안에 들어가는 내용에서
<textarea name="content" cols="32" rows="4">---></textarea>를
아래처럼 바꾸면 된다고 하더라구요.
<textarea name="content" cols="32" rows="4">
--->
</textarea>
이것을 한번에 싹 바꿔버리는 방법 없나요??? php 정규식이 넘 어려워서 엄두가 안나네요.
댓글 전체

찾기/바꾸기로 바꾸시려는 건가요..? Ctrl+F로?
db에 들어가는 글의 내용을 바꾸는 것이므로 프로그램을 써야죠.

그러면....
htmlentities // htmlspecialchars
이걸로 하면 되지 않나요? 따옴표는 인자 값줘서 처리유무 설정 할 수 있으니...
htmlentities // htmlspecialchars
이걸로 하면 되지 않나요? 따옴표는 인자 값줘서 처리유무 설정 할 수 있으니...

htmlspecialchars 는
<textarea name="content" cols="32" rows="4">---></textarea>
이내용이 그대로 들어가므로 에러가 발생할수도 있을것 같구요..
htmlentities() 로 하시면 문자 엔티티에 존재하는 모든 문자를 엔티티로 변환하므로
htmlentities() 를 쓰시면 되겟네요
<textarea name="content" cols="32" rows="4">---></textarea>
이내용이 그대로 들어가므로 에러가 발생할수도 있을것 같구요..
htmlentities() 로 하시면 문자 엔티티에 존재하는 모든 문자를 엔티티로 변환하므로
htmlentities() 를 쓰시면 되겟네요
그렇게 하면 문제가 있어요. 예를 들어 작성한 글에 외부에서 퍼옴 홈피 내용이
들어 있고 그 홈피내용중에 textarea가 있는 경우 입니다.
그런데 htmlentities를 써버리면 전체가 다 plain html 코드가 되어서 퍼온 화면이
보이는게 아니라 그 화면의 html code가 보이게 되는 겁니다.
쉬운거면 제가 고민을 안하죠 ㅠ..ㅠ
들어 있고 그 홈피내용중에 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", "<textarea\\1>", $str);
$str = preg_replace("/<\/textarea>/iUs", "</textarea>", $str);
$str = "<h3>hi</h3>abcdefg<br><p>aaa</p>
<textarea name=\"content\" cols=\"32\" rows=\"4\">---></textarea>";
$str = preg_replace("/<textarea(.*)>/iUs", "<textarea\\1>", $str);
$str = preg_replace("/<\/textarea>/iUs", "</textarea>", $str);

<?
$x = '<a>sdfsfsdf<textarea name="content" cols="32" rows="4">---></textarea>sdfsdfdsf</a>';
echo preg_replace("/<(textarea[^>]*)>([^<]*)<(\/textarea)>/i", "<$1>\n$2\n<$3>", $x);
?>
$2 가 조금 헷갈리네요.
머리가 아파서 여기까지만 올리겠습니다.
$x = '<a>sdfsfsdf<textarea name="content" cols="32" rows="4">---></textarea>sdfsdfdsf</a>';
echo preg_replace("/<(textarea[^>]*)>([^<]*)<(\/textarea)>/i", "<$1>\n$2\n<$3>", $x);
?>
$2 가 조금 헷갈리네요.
머리가 아파서 여기까지만 올리겠습니다.
일단 나창호님께 cheditor에 데이타를 초기화 할 때 변경을 해달라고 했습니다. ㅠ..ㅠ
이거 때문에 웹문서 편집기에 textarea가 있는거 수정할 때 문제가 생기더라구요.
저는 <textarea>를 <table><tr><td> ... </td></tr></table> 로 바꿔보려구요.
이거 때문에 웹문서 편집기에 textarea가 있는거 수정할 때 문제가 생기더라구요.
저는 <textarea>를 <table><tr><td> ... </td></tr></table> 로 바꿔보려구요.