2010-07-29 44 views
1

我試圖通過PHP來添加Active Directory記錄。 CN包含一個撇號(單引號),我試圖找到正確的方法來逃避它。ldap_add:無效的語法

事情我已經嘗試:

$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

我認爲普通的舊\「和\\」已經嘗試沒有成功? – Charles 2010-07-29 19:38:41

+0

通常在LDAP中是'\''來完成所需的轉義。 – geoffc 2010-07-30 02:08:58

+0

addslashes將'轉換爲'。我已經使用printf驗證了這一點。所以是的,我試過了;這是我的中間情況。我也試過沒有成功。 – 2010-07-30 03:29:53

回答

0

您需要使用兩個撇號而不是一個撇號。這是因爲一個人逃避了另一個。

的\轉義用於特殊字符(「」‘’‘=’等...)和十六進制編碼的字符,當該值沒有字符串表示其中使用。