当我从Google地图复制域名然后将其粘贴到我构建的表单中时,会将其输入到MySQL数据库中,并在域名末尾添加 ‎
。
知道如何删除域名 ‎
吗?
相关代码如下
<div class="friend5title"><label for="url">Website:</label></div>
<div class="friend5field"><input name="website" type="text" id="website" maxlength="150"></div>
$website = mysql_real_escape_string($website);
mysql_query("INSERT INTO submission VALUES ('$website')");
答案 0 :(得分:1)
这是一个控制角色(http://en.wikipedia.org/wiki/Left-to-right_mark)。
忽略我刚刚意识到的所有我以前的答案(因为我写得很快)它不是unicode它实际上是HTML实体格式,所以你需要剥离该HTML实体:
preg _replace('/(‎)/', '', $string);
另一种方法是实际净化你的字符串并清除所有HTML实体,因为它实际上不应该包含任何HTML实体。通常可能会有像&
这样的特殊字符,但这些字符不应存在于我认为的输入字段中的URL中。
以下是关于使用可靠答案删除HTML实体的问题:How to remove html special chars?
至于它为什么会发生:有人可能有一个外国浏览器,人为地使输入中的文本以某种方式进行,但反过来又添加了这个html实体。
答案 1 :(得分:0)
在输入字段中粘贴时,您确实复制了一个从左到右的字符,其中包含unicode编号8206.因为浏览器显然确实有一个不在某个unicode字符集中的表单(如UTF-8),所以它被发送到服务器将该字符作为数字实体‎
。服务器必须对这些进行解码,或者必须更改表单(和页面)以接受UTF-8。
对于你的LTR字符,它似乎是多余的。您可以添加onchange=...
来删除字符&lt; 0和&gt; 127为URL。它们仍然是人物,因此很容易完成。