1
How do I convert a string with Camelcase for snake_case in PHP as simply as possible?
Example:
CamelCase => camel_case
AjaxInfo  => ajax_info
						1
How do I convert a string with Camelcase for snake_case in PHP as simply as possible?
Example:
CamelCase => camel_case
AjaxInfo  => ajax_info
						5
Ready with a line has this one from Sozão
$saida = ltrim(strtolower(preg_replace('/[A-Z]/', '_$0', $entrada )), '_');
The question is, what happens if you do ___ at first?
But it can be interesting to change the logic if you’re always starting with a letter:
$saida = substr(strtolower(preg_replace('/[A-Z]/', '_$0', $entrada )), 1);
This one already guarantees the first character not having _ using lcfirst:
$saida = strtolower( preg_replace(
    ["/([A-Z]+)/", "/_([A-Z]+)([A-Z][a-z])/"], ["_$1", "_$1_$2"], lcfirst($entrada) ) );
Remarks:
Look at these situations:
LetraEMaiuscula 
CodeIsHTML
In the first case, use [a-z][A-Z] problem. In the second case, [a-z][A-Z] is better than just [A-Z]. If you need the second case you have to use a trade in the format ([A-Z])([A-Z][a-z]) for $1_$2
What if it has spaces? I believe that if it is already Camelcase well formed, it makes no sense to have spaces in the string, but if you need to exchange for _, is the case to add a str_replace(' ', '_', $valor ) as Miguel has already warned answer given.
The problem is if you have space. You should not replace it with '_'?
@Miguel good question. It depends on how the person will use it. I added a remark.
I realized of course that if it is Camelcase it is part of the brush that there are no spaces
@Miguel however I find valid his observation, fine tune, we never know how the person will use the code.
Browser other questions tagged php camel-case snake-case
You are not signed in. Login or sign up in order to post.
$saida = ltrim(strtolower(preg_replace('/[A-Z]/', '_$0', $entrada )), '_');– Bacco