我正在做实习生,我遇到了一个问题。基本上我有一个CN=van der Valk\, Marco,OU=UT,OU=NL,OU=EMEA,OU=associates,OU=usersAndGroups,DC=corporate,DC=ingrammicro,DC=com
的字符串,但我只想知道在这种情况下CN后面会是van der Valk
。我尝试了修剪功能,但没有成功,有人可以帮助我吗?
答案 0 :(得分:2)
你可以使用strpos
首先,我找到CN=
的位置,然后将其用作第二个strpos中的偏移量(以查找字符串的结尾)。
$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.
$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=([\w\s\\\\,]+),/", $str, $match);
List($lastname, $firstname) = explode(',', str_replace("\\", "", $match[1]));
Echo $firstname ." " . $lastname;
答案 1 :(得分:0)
这是一个例子
$val = "CN=van der Valk\, Marco,OU=UT,OU=NL,OU=EMEA,OU=associates,OU=usersAndGroups,DC=corporate,DC=ingrammicro,DC=com";
$valSplit = explode(",", $val)[0];
$firstVal = str_replace("\\", "", $valSplit);
print($firstVal);
好的,Explode根据逗号将字符串拆分为一系列数组。 str_replace需要3个参数。第一个是要替换的内容,第二个是应该替换的内容,第三个是应该替换的字符串。在这种情况下,目标是删除斜杠。
答案 2 :(得分:0)
$str = 'CN=van der Valk\, Marco,OU=UT,OU=NL,OU=EMEA,OU=associates,OU=usersAndGroups,DC=corporate,DC=ingrammicro,DC=com';
// find position of 1st \, as \ is a string modifier we escape it with \\
$index = strpos($str, '\\');
echo "$index <br>";
// substr('string', 'starting index', 'length: numbers of character to get')
$new_string = substr($str, 3, $index - 3);
echo $new_string; // van der Valk