添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接


创建函数strip_tags

CREATE FUNCTION `strip_tags`($str text) RETURNS text
BEGIN
DECLARE $start, $end INT DEFAULT 1;
LOOP
SET $start = LOCATE("<", $str, $start);
IF (!$start) THEN RETURN $str; END IF;
SET $end = LOCATE(">", $str, $start);
IF (!$end) THEN SET $end = $start; END IF;
SET $str = INSERT($str, $start, $end - $start + 1, "");
END LOOP;
END;

查看函数strip_tags



mysql> show function status \G
*************************** 1. row ***************************
Db: sijitao.net
Name: strip_tags
Type: FUNCTION
Definer: root@localhost
Modified: 2014-12-10 09:40:00
Created: 2014-12-10 09:40:00
Security_type: DEFINER
Comment:
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: utf8_general_ci
1 row in set (0.00 sec)

mysql> show create function strip_tags \G
*************************** 1. row ***************************
Function: strip_tags
sql_mode:
Create Function: CREATE DEFINER=`root`@`localhost` FUNCTION `strip_tags`($str text) RETURNS text CHARSET utf8
BEGIN
DECLARE $start, $end INT DEFAULT 1;
LOOP
SET $start = LOCATE("<", $str, $start);
IF (!$start) THEN RETURN $str; END IF;
SET $end = LOCATE(">", $str, $start);
IF (!$end) THEN SET $end = $start; END IF;
SET $str = INSERT($str, $start, $end - $start + 1, "");
END LOOP;
END
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: utf8_general_ci
1 row in set (0.00 sec)



测试函数strip_tags



mysql> select strip_tags('<span>hel<b>lo <a href="world">wo<>rld</a> <<x>again<.');
+----------------------------------------------------------------------+
| strip_tags('<span>hel<b>lo <a href="world">wo<>rld</a> <<x>again<.') |
+----------------------------------------------------------------------+
| hello world again. |
+----------------------------------------------------------------------+
1 row in set (0.00 sec)



测试结果满足要求,已经自动帮我们删除html标签。

遇到的问题

我在创建函数的时候碰到了如下类似错误。



ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)



解决办法是在创建函数之前执行下面这个命令。



mysql> set global log_bin_trust_function_creators=1;



参考网址:

​ http://stackoverflow.com/questions/7654436/what-is-the-mysql-query-equivalent-of-php-strip-tags​

​http://database.51cto.com/art/201010/229918.htm​

PHP 5.4 已废弃 magic_quotes_gpc,PHP安全转义函数详解(addslashes 、htmlspecialchars、htmlentities、mysql_real_escape_string、strip_tags)

1. addslashes() addslashes()对SQL语句中的特殊字符进行转义操作,包括(‘), (“), (), (NUL)四个字符,此函数在DBMS没有自己的转义函数时候使用,但是如果DBMS有自己的转义函数,那么推荐使用原装函数,比如MySQL有mysql_real_escape_s

javascript 变量键值对 javascript中,变量的定义

一、JavaScript变量1、变量概述1、 什么是变量白话:变量就是一个装东西的盒子。通俗:变量是用于存放数据的容器。 我们通过 变量名2、 变量在内存中的存储本质:变量是程序在内存中申请的一块用来存放数据的空间。类似我们酒店的房间,一个房间就可以看做是一个变量。2、变量的使用--2步变量在使用时分为两步: 1. 声明变量 2. 赋值1. 声明变量// 声明变量 var age; //

ios 设置局部变量 局部变量在哪里声明

程序运行时能够改变的量称为变量(Variable),变量可分为两种类型:全局变量和局部变量。全局变量是指在所有过程和函数之外声明的变量,全局变量又分为公有(Public)变量和私有(Private)变量。公有变量可以被程序所调用,而私有变量只可以在某个单元中被访问。局部变量是指在某个过程或事件中定义的变量。变量的声明:var 变量名:数据类型; 1 interface 3 uses