>  기사  >  데이터 베이스  >  HTML 엔터티를 디코딩하기 위해 사용자 정의 MySQL 함수를 어떻게 생성할 수 있습니까?

HTML 엔터티를 디코딩하기 위해 사용자 정의 MySQL 함수를 어떻게 생성할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-25 12:28:02663검색

How can I create a custom MySQL function to decode HTML entities?

아래 제공된 것과 같은 사용자 정의 함수를 생성하면 MySQL에서 HTML 엔터티를 디코딩할 수 있습니다.

<code class="sql">DELIMITER $$ 
DROP FUNCTION IF EXISTS `HTML_UnEncode`$$ 
CREATE FUNCTION `HTML_UnEncode`(X VARCHAR(255)) RETURNS VARCHAR(255) CHARSET latin1 DETERMINISTIC
BEGIN 

DECLARE TextString VARCHAR(255) ; 
SET TextString = X ; 

#quotation mark 
IF INSTR( X , '&amp;quot;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;quot;','"') ; 
END IF ; 

#apostrophe  
IF INSTR( X , '&amp;apos;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;apos;','"') ; 
END IF ; 

#ampersand 
IF INSTR( X , '&amp;amp;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;amp;','&amp;') ; 
END IF ; 

#less-than 
IF INSTR( X , '&amp;lt;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;lt;','<') ; 
END IF ; 

#greater-than 
IF INSTR( X , '&amp;gt;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;gt;','>') ; 
END IF ; 

#non-breaking space 
IF INSTR( X , '&amp;nbsp;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;nbsp;',' ') ; 
END IF ; 

#inverted exclamation mark 
IF INSTR( X , '&amp;iexcl;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;iexcl;','¡') ; 
END IF ; 

#cent 
IF INSTR( X , '&amp;cent;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;cent;','¢') ; 
END IF ; 

#pound 
IF INSTR( X , '&amp;pound;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;pound;','£') ; 
END IF ; 

#currency 
IF INSTR( X , '&amp;curren;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;curren;','¤') ; 
END IF ; 

#yen 
IF INSTR( X , '&amp;yen;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;yen;','¥') ; 
END IF ; 

#broken vertical bar 
IF INSTR( X , '&amp;brvbar;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;brvbar;','¦') ; 
END IF ; 

#section 
IF INSTR( X , '&amp;sect;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;sect;','§') ; 
END IF ; 

#spacing diaeresis 
IF INSTR( X , '&amp;uml;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;uml;','¨') ; 
END IF ; 

#copyright 
IF INSTR( X , '&amp;copy;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;copy;','©') ; 
END IF ; 

#feminine ordinal indicator 
IF INSTR( X , '&amp;ordf;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;ordf;','ª') ; 
END IF ; 

#angle quotation mark (left) 
IF INSTR( X , '&amp;laquo;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;laquo;','«') ; 
END IF ; 

#negation 
IF INSTR( X , '&amp;not;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;not;','¬') ; 
END IF ; 

#soft hyphen 
IF INSTR( X , '&amp;shy;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;shy;','­') ; 
END IF ; 

#registered trademark 
IF INSTR( X , '&amp;reg;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;reg;','®') ; 
END IF ; 

#spacing macron 
IF INSTR( X , '&amp;macr;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;macr;','¯') ; 
END IF ; 

#degree 
IF INSTR( X , '&amp;deg;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;deg;','°') ; 
END IF ; 

#plus-or-minus  
IF INSTR( X , '&amp;plusmn;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;plusmn;','±') ; 
END IF ; 

#superscript 2 
IF INSTR( X , '&amp;sup2;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;sup2;','²') ; 
END IF ; 

#superscript 3 
IF INSTR( X , '&amp;sup3;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;sup3;','³') ; 
END IF ; 

#spacing acute 
IF INSTR( X , '&amp;acute;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;acute;','´') ; 
END IF ; 

#micro 
IF INSTR( X , '&amp;micro;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;micro;','µ') ; 
END IF ; 

#paragraph 
IF INSTR( X , '&amp;para;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;para;','¶') ; 
END IF ; 

#middle dot 
IF INSTR( X , '&amp;middot;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;middot;','·') ; 
END IF ; 

#spacing cedilla 
IF INSTR( X , '&amp;cedil;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;cedil;','¸') ; 
END IF ; 

#superscript 1 
IF INSTR( X , '&amp;sup1;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;sup1;','¹') ; 
END IF ; 

#masculine ordinal indicator 
IF INSTR( X , '&amp;ordm;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;ordm;','º') ; 
END IF ; 

#angle quotation mark (right) 
IF INSTR( X , '&amp;raquo;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;raquo;','»') ; 
END IF ; 

#fraction 1/4 
IF INSTR( X , '&amp;frac14;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;frac14;','¼') ; 
END IF ; 

#fraction 1/2 
IF INSTR( X , '&amp;frac12;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;frac12;','½') ; 
END IF ; 

#fraction 3/4 
IF INSTR( X , '&amp;frac34;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;frac34;','¾') ; 
END IF ; 

#inverted question mark 
IF INSTR( X , '&amp;iquest;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;iquest;','¿') ; 
END IF ; 

#multiplication 
IF INSTR( X , '&amp;times;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;times;','×') ; 
END IF ; 

#division 
IF INSTR( X , '&amp;divide;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;divide;','÷') ; 
END IF ; 

#capital a, grave accent 
IF INSTR( X , '&amp;Agrave;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;Agrave;','À') ; 
END IF ; 

#capital a, acute accent 
IF INSTR( X , '&amp;Aacute;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;Aacute;','Á') ; 
END IF ; 

#capital a, circumflex accent 
IF INSTR( X , '&amp;Acirc;' ) 
THEN SET TextString = REPLACE(TextString, '&amp;Acirc;','Â') ; 
END IF ; 

#capital a, tilde 
IF INSTR( X , '&amp;Atilde;' ) </code>

위 내용은 HTML 엔터티를 디코딩하기 위해 사용자 정의 MySQL 함수를 어떻게 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.