文字列があるとしましょう:
"\System\Classes\SomeClass"
そして私はこれを次のように変換したいと思います:
"\system\classes\someClass"
これを行うにはどうすればよいですか?各「\X」を「\x」に変換しますか?どの正規表現を使用する必要がありますか?正規表現を使用してこれを行うことはできますか?(私が知る限り、彼らは検索されたパターンの最初の出現のみを検索します)。
文字列があるとしましょう:
"\System\Classes\SomeClass"
そして私はこれを次のように変換したいと思います:
"\system\classes\someClass"
これを行うにはどうすればよいですか?各「\X」を「\x」に変換しますか?どの正規表現を使用する必要がありますか?正規表現を使用してこれを行うことはできますか?(私が知る限り、彼らは検索されたパターンの最初の出現のみを検索します)。
これを試してください-デモ
$string = "\System\Classes\SomeClass";
$array = explode("\\", $string);
for ( $i = 0, $len = sizeof($array); $i < $len; $i++ ) {
$array[$i] = lcfirst($array[$i]);
}
$new_string = implode("\\", $array);
直後の文字だけを小文字にしたいです\
よね?文字列をで分割してから、AjmalSalimが提案したようにそれぞれで\
使用することをお勧めします。lcfirst($str)
次に、文字列を再び内包することができます。したがって、次のようになります。
$parts = explode('\\', '\\System\\Classes\\SomeClass');
$parts = array_map(function($item) { return lcfirst($item); }, $parts);
$end = implode('\\', $parts);
最後の言葉がいつもクラスならこんな感じ
$str="\System\Classes\SomeClass";
$str2=strtolower($str);
$strArr=explode("\\",$str2);
$newStr=preg_replace('~class~','Class',$strArr[3]);
$complete=$strArr[1].'\\'.$strArr[2].'\\'. $newStr;
echo $complete;