ASCII控制字符正在寻找进入我经常维护的数据库的方式。虽然我计划实施防止它们 对于初学者,我知道可以使用SQL执行查找和替换 ... PHP允许您使用数组用其他东西替换多个项目...... 因此,我们可以通过一种方式构建SQL查询来替换多个ASCII控制字符,而不是循环中的SQL查询吗? 同样非常重要的是如何我们替换那些控制字符(例如dec,oct,hex)? 另外我已经读过回车是控制字符0~31的一部分所以显然我们不想删除它们以确保换行保留,除非我丢失什么事呢? 这是我现在要去的参考页面...... 我将XHTML编码为application / xhtml + xml,并将以下内容测试为 example1.xhtml ,并在 Firefox 中使用 NO BYTE ORDER MARK(BOM)进行显式打开 ... 以下是唯一可以在不创建格式错误的XML的情况下使用的字符,另存为 example2.xhtml ,并在 Firefox 中使用 NO BYTE ORDER MARK打开显式屏幕(BOM) ... 我们不想要在SQL中删除的那些工作字符是...... 09 - 水平标签 10 - 换行 13 - 回车INSERT
进入SQL的方法,但我必须首先处理数据库中已的字符。< / p>
UPDATE [table_name]
SET [field_name]=REPLACE([field_name],'[string_to_find]','[string_to_replace]');
$result = str_ireplace(array('1','2','3','4','5'),'0',$my_string);
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
</head>
<body>
<div>
<p>�	



</p>
</div>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
</head>
<body>
<div>
<p>	

</p>
</div>
</body>
</html>
答案 0 :(得分:0)
这适用于初学者,但不一定是大众......
UPDATE a_log SET useragent=replace(useragent,char(4),'');
UPDATE a_log SET useragent=replace(useragent,char(5),'');
我所做的是首先从Firefox复制XML解析错误。执行复制和粘贴时,Windows 7剪贴板 正确保留ASCII控制字符。然后我将违规文本粘贴到本网站的表格中......
找到我使用 DEC 和 OCT (他们匹配的列值)的行来引用此网站上的字符...
......经过一番研究后,我能够将几行清理出来,以清除最终导致我的XML格式错误的违规字符。
我仍然会接受一个更好的答案,因为重点是更多的拉网风格的修复。此外,我还是主动承认,对于我仍然必须创建,测试和实施阻止 ASCII控制字符插入的问题的措施更多的反动立场MySQL开始;因此,我仍在寻找一种良好的方法来阻止这个问题。
如果有人问同一个问题并遇到问题,他们至少会有一些解决问题的有效方法。