mysql - 从 HTML/MS Word 标签中清除数据库

标签 mysql html ms-word

我有非常大的数据库需要清理。在旧系统上,允许用户使用 HTML(并从 Word 文件粘贴)。现在我在数据库的不同地方有大量的开放标签。

有人知道执行这种清理的应用程序/脚本吗?

最佳答案

您可以使用一些 php(或其他后端语言)来完成此操作

这是一个用php写的例子

$link = mysql_connect($host, $username, $password); //connecting to database 
mysql_select_db($database_name,$link); // select a database
$q = mysql_query('SELECT id_row,cell_with_tags FROM tablename WHERE some_condition_if_it_needed'); 
if(mysql_num_rows($q) !== 0){   //check if result of our query not empty
    while($res = mysql_fetch_assoc($q)){ // gets all rows-cells as associative array
         $result[] = array('id_row'=>$res['id_row'],
                           'cell_with_tags'=>strip_tags($res['cell_with_tags']);
    }
}
if(!empty($result)){ 
    foreach($result as $k=>&$v){ // update our database. Write there values without tags
         mysql_query('UPDATE tablename SET cell_with_tags = '.$result[$k]['cell_with_tags'].' WHERE id='.$result[$k]['id_row']);
    }
}

如果你不想删除所有的 html 标签,你也可以修改 strip_tags 函数的调用。 ( http://ru.php.net/manual/en/function.strip-tags.php )

如果无法执行 php 脚本,则只能使用 mysql 执行此操作。我从this得到它

DROP FUNCTION IF EXISTS strip_tags || 
CREATE FUNCTION strip_tags( x longtext) RETURNS longtext
LANGUAGE SQL NOT DETERMINISTIC READS SQL DATA 
BEGIN
   DECLARE sstart INT UNSIGNED;
   DECLARE ends INT UNSIGNED;
   SET sstart = LOCATE('<', x, 1);
   REPEAT
      SET ends = LOCATE('>', x, sstart);
      SET x = CONCAT(SUBSTRING( x, 1 ,sstart -1) ,SUBSTRING(x, ends +1 )) ; 
      SET sstart = LOCATE('<', x, 1);
   UNTIL sstart < 1 END REPEAT;
return x;
END;
||
delimiter ;

mysql> SELECT strip_tags('<a href="HelloWorld.html"><B>Hi, mate!</B></a>') as strip_tags;

关于mysql - 从 HTML/MS Word 标签中清除数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7024490/

相关文章:

mysql - 将查询合并为一个

mysql - 使用三张表查询SQL数据

mysql - Yii 查询优化 MySQL

MySql Match() Against() 返回包含单词的所有行

javascript - 使用 vanilla javascript 和 velocity.js 旋转 div 以面对鼠标光标缓慢运行

javascript - XML 响应文本未定义

html - CSS 样式优先级未按预期工作

c# - 如何在 asp.net 中索引 .doc 和 .pdf 文件

c# - Sharepoint 2010 从模板创建列表

文档中链接对象的文件路径的VBA列表