I am doing an intern atm and I faced a problem. Basically I have a string which is CN=van der Valk, Marco,OU=UT,OU=NL,OU=EMEA,OU=associates,OU=usersAndGroups,DC=corporate,DC=ingrammicro,DC=com
but I only wasn’t what is after the CN which will be van der Valk
in this case. I tried it with the trim function but didn’t succeed, can anybody help me?
Advertisement
Answer
You can use strpos.
First I find the position of CN=
and then use that as the offset in the second strpos (to find the end of string).
$str = "CN=van der Valk, Marco,OU=UT,OU=NL,OU=EMEA,OU=associates,OU=usersAndGroups,DC=corporate,DC=ingrammicro,DC=com"; $CN = strpos($str, "CN=")+3; // +3 because CN= is three characters. Echo substr($str, $CN, strpos($str, '\', $CN)-3); // -3 because we need to subtract what we added above.
I’m actually starting to think regex may be a good tool here.
Here I capture both firstname and lastname.
Then remove the slash and explode on comma and save them in $firstname and $lastname.
$str = 'CN=van der Valk, Marco,OU=UT,OU=NL,OU=EMEA,OU=associates,OU=usersAndGroups,DC=corporate,DC=ingrammicro,DC=com'; preg_match("/CN=([ws\\,]+),/", $str, $match); List($lastname, $firstname) = explode(',', str_replace("\", "", $match[1])); Echo $firstname ." " . $lastname;