mysql html 제거하기

혹시 sql 를 날려서 게시글 본문에 포함된 html 태그를 다 날릴 수는 없을까요?

 

" <span> 안녕하세요 </span> " 라고 된 문장을 " 안녕하세요 " 으로 바꾸고 싶은데

 

이게 가능한건지 궁금합니다

 

한두개면 일일이 수정하면 되는데

 

몇만건이 넘어가니 수작업으론 도저히 엄두가 안나네요

  • profile
    가능합니다.
    본문을 불러와서 strip_tags로 html 태그를 제거한 후 다시 저장하면 됩니다.

    게시판처럼 불러올때는 while로 돌리고 그 안에서 제거하고 고유값을 기준으로 다시 저장하면 되는 거죠.

    쿼리만 보면 대강 아래와 같은 구성이 되겠네요.
    mysql 쿼리를 날릴려면 이전에 db연결하는 부분이 있어야 합니다.

    <?
    $query = "SELECT * FROM 테이블명";//필요하면 WHERE절 추가
    $result= mysql_query($query);
    while($row = mysql_fetch_array($result, MYSQL_ASSOC))
    {
    $t_idx = $row['고유번호필드명'];
    $t_con = $row['본문필드명'];
    $t_con = strip_tags($t_con);

    $query_t = "UPDATE 테이블명 SET 본문필드명='$t_con' WHERE 고유번호필드명 = '$t_idx'";
    $result_t = mysql_query($query_t);
    }
    ?>

    실제로 적용하기 전에는 반드시 백업을 하고 하세요~
  • profile

    phpadmin 들어가신후 쿼리 작성창에서

     

    UPDATE xe_documents SET content=REPLACE(content, "<span>안녕하세요</span>", "환영합니다")

    -> 모든 게시글의 내용의 <span>안녕하세요</span>환영합니다 로 변경

     

    UPDATE xe_documents SET content=REPLACE(content, "<span>", "")

    UPDATE xe_documents SET content=REPLACE(content, "</span>", "")

    - > 모든 게시글의 내용에서 <span></span> 태그가 삭제됨

     

     

    빨간색 xe의 경우 본인사이트 테이블 앞에 붙는 값으로 변경한적 없다면 디폴트가 xe입니다.

    특정 게시판만을 목적으로 하는경우 where 이용하여 범위제한 하시면 됩니다.

  • profile profile
    글 내용에서 <span> 태그는 대부분 에디터에서 폰트나 색상 등을 지정하기 위해 사용하므로
    앞부분은 그냥 <span>이 아니라 <span style="어쩌고저쩌고"> 이렇게 되어 있을 가능성이 높습니다.
    위와 같이 단순 치환하면 앞 태그는 그대로 남고 뒤 태그만 지워져서
    태그 균형이 맞지 않아 오히려 엉망이 될 가능성이 높습니다.