我正在尝试通过PHP添加Active Directory记录。 CN包含一个撇号(单引号),我正试图找到正确的方法来逃避它。
我尝试过的事情:
$dn = "CN=Conan O'Brien,OU=test,DC=test";
ldap_add($link_id, $dn, $attributes);
ldap_add($link_id, addslashes($dn), $attributes);
ldap_add($link_id, str_replace("'", "\\39", $dn), $attributes);
每个人都会犯同样的错误。显然,我已经验证了这段代码在DN中没有撇号的情况下工作。
ldap_add(): Add: Invalid syntax
答案 0 :(得分:0)
您需要使用两个撇号而不是一个。这是因为一个逃脱了另一个。
\ escaping用于特殊字符(“,”“;”“=”etc ...)和十六进制编码字符,当值没有字符串表示时使用。