如何在 php 中把驼峰样式的字符串转换成下划线样式的字符串。例:输入是 FooBar 的话,输出则是 foo_bar
以下是用正则的方式去完成,既然用到正则,方法肯定就不只一种,我们看下下面的方式
echo strtolower(preg_replace('/(?<=[a-z])([A-Z])/', '_$1', 'fooBar'));
//output:foo_bar
echo strtolower(preg_replace('/(?<=[a-z])([A-Z])/', '_$1', 'foo'));
//output:foo
echo strtolower(preg_replace('/(?<=[a-z])([A-Z])/', '_$1', 'fooBarB'));
//output:foo_bar_b
如何在 php 中把下划线样式的字符串转换成驼峰样式的字符串。例:输入是 foo_bar 的话,输出则是 FooBar
$str = preg_replace_callback('/_+([a-z])/',function($matches){print_r($matches); //Array ([0] => _b [1] => b )
return strtoupper($matches[1]);
},'foo_bar');
echo $str; //fooBar
$str = preg_replace_callback('/_+([a-z])/',function($matches){return strtoupper($matches[1]);
},'foo');
echo $str; //foo
$str = preg_replace_callback('/_+([a-z])/',function($matches){return strtoupper($matches[1]);
},'foo_bar_b');
echo $str; //fooBarB