更新表格以擦除一长串 html
Posted
技术标签:
【中文标题】更新表格以擦除一长串 html【英文标题】:UPDATE a table to erase a long string of html 【发布时间】:2016-06-23 07:45:53 【问题描述】:我正在修复一个朋友的 wordpress 网站,我发现他之前的恶意软件感染在数百个帖子的末尾添加了一长串 html。这是html:
<div style="position:absolute;filter:alpha(opacity=0);opacity:0.001;z-index:10;">
<a href="http://...">...</a></div>
我可以为小字符串编写一个 UPDATE SET REPLACE。但是,鉴于所有的 html 和引号,我无法弄清楚如何找到这个确切的字符串。这有可能吗?
【问题讨论】:
【参考方案1】:这是我更新后的查询:
UPDATE posts
SET post = SUBSTRING(post, 1, INSTR(post, '<div style="%position:absolute;') - 1)
WHERE post LIKE '%<div style="\%position:absolute;%'
它将包含子字符串<div style="\%position:absolute;
的每个帖子替换为该帖子的子字符串,该子字符串从第一个字符开始并以最后一个字符之前在末尾添加的垃圾开始。
这应该在垃圾 html 总是出现在末尾的假设下起作用,并且 <div style="\%position:absolute;
仅作为垃圾文本出现,而不是实际帖子的一部分。
【讨论】:
这是一个很好的解决方案,但不幸的是,它不适用于我的情况,因为我需要删除的字符串长度略有不同。但是,字符串确实总是以相同的开头。那么,根据您的答案,是否可以在特定字符串出现之前计算字符数?因为这样可以找到有效内容的长度,我们可以修剪到那个长度。 谢谢!这为我节省了大量的手动编辑。以上是关于更新表格以擦除一长串 html的主要内容,如果未能解决你的问题,请参考以下文章