我需要在PHP中组成一个简单的字符串,这是一个要发布到另一个站点的数据字符串。
问题是其中一个字段是'notify_url = ..'当我使用PHP时需要&在它前面,而不是表示逻辑运算符AND NOT的部分,并将其转换为¬字符:
$string = 'field1=1234&field2=this¬ify_url=http';
打印为'field1 = 1234& field2 =this¬ify_url= http'
我页面上的编码是UTF-8。
我尝试使用单引号和双引号创建字符串。我已经尝试使字段命名变量并将它们连接起来,但它总是产生特殊字符。
这不是urlencoded,因为在提交表单以验证发布的数据之前,要对字符串进行哈希处理。
答案 0 :(得分:3)
PHP没有这样做,它是您的浏览器解释HTML实体表示法。 &
在HTML中具有特殊含义,作为HTML实体的开头,¬
恰好是有效的HTML实体。您需要对具有特殊含义的字符进行HTML编码:
echo htmlspecialchars($string);
// field1=1234&field2=this&notify_url=http