我的数据库包含从外部Feed中提取的信息。在此原始文本供稿中,使用以下文本代替特殊字符:
& - &
' - &39;
é - é
我提取了一些此文本以形成网址。例如,我根据包含这些字符的数据构建的URL可能如下所示:
http://url.com/search/?brand=Franklin&Hédgson's
我使用此URL中的GET变量构建进一步的查找,这会导致一些特定的问题:
é和'字符会在出现时发送回MySQL,因此它们不会触发任何结果(因为字符占用了全部字符)数据库文本中的HTML表单。)
网址中的& 分隔变量,GET只返回 Franklin ,它应返回整个字符串。
< / LI> 醇>有没有直接的方法来解决这个问题?
感谢。
答案 0 :(得分:2)
在创建链接之前,您应该对品牌= Franklin&amp;Hédgson进行编码,如果您使用php生成链接,请使用urlencode http://php.net/manual/en/function.urlencode.php
然后你可以使用htmlentities对查询进行编码,然后在查询http://www.php.net/manual/en/function.htmlentities.php
中将其发送到mysql答案 1 :(得分:1)
那是因为'&amp;'在URL中启动一个新的GET变量。 '?'开始你的查询字符串中有2个项目,'brand'=“Franklin”和undefined =“Hédgson's”。
只要这些字符出现在您的网址中(当然是值内),您就应该使用list of URL escape codes。所以,'&amp;'当它被放入字符串时需要转义为'%26',以便GET能够正确读取它。