PHP 정규표현식 관련 질문 입니다.

taiji88의 이미지

html 태그 중에서
textarea
를 찾아서 그 안에 있는
내용을 골라내
그 내용을 br태그로 치환 하여 엔터처리 하는방법이 궁금합니다.

textarea 찾아서 관련태그 삭제하는것 까지는 되는데
안의 내용을 컨트롤 하는게 잘 안되네요.

red10won의 이미지

replaceall \n
검색하면 많이 나와요..
db 입력전에 바꾸어서 넣는게 로직상 나아 보입니다 ㅎ

자바스크립트로도 가능하고 php로도 가능하고str_replace
머 편한대로 처리하세요 ㅎ

정상인의 이미지

post형식으로 필드 데이타만 받아오는 게 아니라 html페이지를 통째로 파싱하는 경우인가요?
일단 엔터->br은 nl2br을 써서 엔터를 일괄 변환 가능합니다.
주로 게시판 입력을 받을 땐 이런 식으로 하죠. nl2br(htmlspecialchars($str)).
파싱용으로 나온 코드를 사용하시거나 텍스트에리어쪽 코드가 고정인 경우 혹은 어쨌든 그 원하는 텍스트를 감싸고 있는 태그를 찾아서 익스플로드한 후 안에 있는 내용을 nl2br로 처리해주시면 됩니다.
그리고 당연하지만 유저가 수정한 내용이 있을 경우 인식하지 못합니다. 그런 건 폼을 만들어서 post형식이나 get형식으로 받아오거나 자바스크립트로 처리해야 합니다.
참고로 php는 웹전용으로 개발되는 언어기 때문에 찾아보면 웹개발에 필요할 만한 펑션이나 라이브러리는 엔간해선 다 있습니다.

taiji88의 이미지

nl2br 은 전체를 br처리 하는데
제가 하고자 하는건 textarea태그 안에 있는 내용만 br처리를 해야 합니다.
완전 머리가 아프네요.. @.@

송효진의 이미지

<?php preg_replace_callback('~]*>(.*?)~s', nl2br을사용하는callback함수 ?>

taiji88의 이미지

송효진 님 덕분에 해결을 하였습니다.

$pattern1 = array
(
"']*?>'si",
"']*?>'si",
"']*?>'si",
"']*?>'si",
"/on([a-z]+)=/i"
);

$pattern = '!<(textarea).*?|!si';
내용 = preg_replace_callback($pattern, 'patt', 내용);
내용 = preg_replace($pattern1,'',내용);

이렇게 하였습니다.

감사합니다. ^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.