2

有谁知道如何在 PHP 中分解一些字符串,例如:

<?
// Submitted through register form

$first_name = $_POST['first_name'];

// example $_POST['first_name'] is somebody
// and need to be exploded at position 1 or by letter 'o' in this example
// but that is not always letter o
// I made also 

$first_name_lc = strtolower($first_name);

// converted all to lowers and now
// exploding at letter o

$explode_rule = 'o';

$first_name_lc_exploded = explode($explode_rule, $first_name_lc);

// now in example we have $first_name_lc_exploded[0] and $first_name_lc_exploded[1]
// $first_name_lc_exploded[0] is now 's' and $first_name_lc_exploded[1] is 'mebody'
// now new first name is $first_name_lc_exploded[0].$explode_rule.$first_name_lc_exploded[1]
// but $first_name_lc_exploded[0] need to be converted in upper and only that, nothing else
// than $first_name_lc_exploded[0] is 'S' instead of 's'
// and first_name is now 'Somebody' instead of 'somebody'
?>

所以现在,问题是:如何用在字符串中查找第二个字母的东西替换字母 o,并用那个规则,一些变量来分解它。有人有想法吗?

4

4 回答 4

5

如果您只是想将第一个字母大写,请尝试ucfirst(strtolower($first_name));

如果要将空格后出现的所有字母大写,请尝试ucwords(strtolower($first_name));;

如果您真的想在第二个字母上拆分字符串,请使用substr();拉出您想要的字符串部分。

另一种选择是使用preg_split();正则表达式来指示字符串的形状以及您希望它如何拆分。

或者,你总是可以explode($first_name[1], $first_name, 2));

http://php.net/manual/en/function.ucfirst.php

http://php.net/manual/en/function.ucwords.php

http://php.net/manual/en/function.substr.php

http://php.net/manual/en/function.preg-split.php

于 2013-04-19T13:54:09.377 回答
2

有一个 PHP 函数可以使第一个字母只有大写:

http://php.net/manual/en/function.ucfirst.php

于 2013-04-19T13:54:38.827 回答
0

试试ucfirst!为什么每次都想重新发明轮子

于 2013-04-19T13:56:25.967 回答
0

所以你想转换字符串的第一个字母。我对吗?

PHP 中有两个预先构建的函数可以做到这一点。

  1. ucfirst()
  2. ucwords()

检查它的手册。

于 2013-04-19T13:57:38.567 回答