使用preg_replace在点字符后将最后一个字符串剪切为一个字母

时间:2013-04-11 07:41:03

标签: php

我有一个php脚本示例,但在这个例子中我的脚本我想将最后一个单词切成一个字母,单词“one two three”的例子变成'one.two.t' 我该如何解决?请帮忙。

我的php脚本的例子

<?php

$str = 'arya dwi pangga';
$str = preg_replace( '/ /', '.', $str );
echo $str;

?>

以上示例将输出:arya.dwi.pangga但我想输出arya.dwi.p,如何解决此问题

3 个答案:

答案 0 :(得分:3)

$str = 'arya dwi pangga';
$str = str_replace(' ', '.', $str);
$cut = strrpos($str, '.')+2;
$str = substr($str, 0, $cut);

echo $str;

输出:arya.dwi.p

您不需要preg_match()来轻松替换,例如查找空格和替换点,如果您没有要查找的复杂模式,只需使用str_replace()

我找到strrpos()找到针的最后一次发生(在这种情况下为'。'),加上+2(点本身和下一个字母)并知道在哪个位置切断了字符串,然后使用substr()要削减它。

答案 1 :(得分:1)

$str = 'arya dwi pangga'; 
$str1 = preg_replace( '/ /', '.', $str ); 
$str2 = substr(strrchr($str1, '.'), 1,1);
$string = explode('.', $str1);
array_pop($string);
$string1 = implode('.', $string);
echo "<br>";
echo $string1.".".$str2;

答案 2 :(得分:0)

$str = 'arya dwi pangga'; 
$str = preg_split('/\s+/', $str); //Split string by space characters

$last = count($str) - 1 ;
$str[$last] = substr($str[$last], 0, 1);  //Leave only the first character of last element
$str = implode(".", $str);        //Get the full string back with dots instead of spaces.

echo $str ;