目标:
我正在尝试将URL放入MySQL数据库。 该URL包含许多特殊字符。 导致问题的具体特征是&字符。 (只要字符串中没有&字符,该过程就能正常工作。)
我将URL从JavaScript传递给PHP脚本。
网址以Javascript中的http://www.example.com/?def&ghi开头。
然后我编码
rssURL = encodeURIComponent(rssURL); // perform encode
在console.log中显示以下值
http%3A%2F%2Fwww.example.com%2F%3Fdef%26ghi%20
我使用Javascript中的以下代码将URL发送到PHP脚本
xhr = new XMLHttpRequest();
xhr.open("POST", "updatecontent.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(userdata);
userdata变量包含:
“datastring” = username^password^rssURL^ varX^ varY
在PHP脚本中,我有以下代码
$URLgroup= $_POST['datastring'];
$datalist = explode ('^', $URLgroup);
$ws_user = $datalist[0];
$ws_pass = $datalist[1];
$ws_urlX = $datalist[2];
// this is the rssURL element passed from the Javascript
$ws_url = rawurldecode ($ws_urlX); // perform decode
$ws_title = $datalist[3];
$ws_category = $datalist[4];
我使用以下代码将URL放在数据库中
$sql = "INSERT INTO global_feeds_table (global_feed_category, global_feed_name, global_feed_title, global_feed_link)
VALUES ( '$ws_category', '$ws_div_id', '$ws_title', '$ws_url') ";
名为global_feed_link
的数据库字段现在包含以下网址
http://www.example.com/?def&ghi
网址应该只包含一个“&”(在“def”之后和“ghi”之前)但它在“&”之后还有“amp;”。这就是问题
环境: