ldap_add:语法无效

时间:2010-07-29 19:18:00

标签: php active-directory ldap

我正在尝试通过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

1 个答案:

答案 0 :(得分:0)

您需要使用两个撇号而不是一个。这是因为一个逃脱了另一个。

\ escaping用于特殊字符(“,”“;”“=”etc ...)和十六进制编码字符,当值没有字符串表示时使用。