将最后一个字符串剪成一个字母后用点字符preg_replace
问题描述:
我有一个php脚本的例子,但在这个例子中我的脚本我只想把最后一个单词剪成一个字母,单词“one two three”的例子变成'one.two.t' 我该如何解决它?请帮忙。将最后一个字符串剪成一个字母后用点字符preg_replace
我的PHP脚本
<?php
$str = 'arya dwi pangga';
$str = preg_replace('/ /', '.', $str);
echo $str;
?>
上面的例子将输出的例子:arya.dwi.pangga,但我想输出arya.dwi.p,我该如何解决这个问题
答
$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()
去掉它。
答
$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;
答
$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 ;