Camelize一个php字符串

时间:2015-11-19 10:42:37

标签: php

如何将这种类型的php字符串转换为驼峰案例?

$string = primary-getallgroups-sys

我已经尝试过但只是找到了不同的解决方案来使用空格来串起一个字符串。像ucword($ string)一样,但它只是将第一个词大写。当我添加连字符( - )的分隔符时,它会给出错误。

4 个答案:

答案 0 :(得分:1)

$string = 'primary-getallgroups-sys';

// split string by '-'
$words = explode('-', $string);

// make a strings first character uppercase
$words = array_map('ucfirst', $words);

// join array elements with '-'
$string = implode('-', $words);

echo $string; // is now Primary-Getallgroups-Sys

答案 1 :(得分:1)

您可以创建一个函数将这些类型的字符串转换为驼峰案例。

试试这个:

<?php
// CONVERT STRING TO CAMEL CASE SEPARATED BY A DELIMITER
function convertToCamel($str, $delim){
    $exploded_str = explode($delim, $str);
    $exploded_str_camel = array_map('ucwords', $exploded_str);
    return implode($delim, $exploded_str_camel);
}

$string = 'primary-getallgroups-sys';

echo convertToCamel($string, '-'); // Answer

?>

答案 2 :(得分:1)

事实上,骆驼案更像是这样:iAmCamelCased

这是一个大例:IAmMixedCased

@ sundas-mushtaq另请注意,如果在符号名称中使用连字符(例如在函数或变量中),连字符将会破坏您的代码。

要获得驼峰,请使用:

function camelize($word, $delimiter){
    $elements = explode($delimiter, $word);

    for ($i = 0; $i < count($elements); $i++) {
        if (0 == $i) {
            $elements[$i] = strtolower($elements[$i]);
        } else {
            $elements[$i] = strtolower($elements[$i]);
            $elements[$i] = ucwords($elements[$i]);
        }
    }

    return implode('', $elements);
}

要混音,请使用:

function mixify($word, $delimiter){
    $word = strtolower($word);
    $word = ucwords($word, $delimiter);

    return str_replace($delimiter, '', $word);
}

答案 3 :(得分:1)

来自Symfony

function camelize(string $string): string
{
    return lcfirst(str_replace(' ', '', ucwords(preg_replace('/[^a-zA-Z0-9\x7f-\xff]++/', ' ', $string))));
}