如果没有,则修剪空白和广告标点符号的功能

时间:2012-08-18 01:37:43

标签: php

我正在尝试创建一个函数来剪切字符串中的空格和广告标点符号(如果没有)。

这是我的测试字符串:

$test = 'Hey there I am traa la la           ';

我希望它变成这个:

$test = 'Hey there I am traa la la.';

这是我尝试过的功能:

function test($mytrim){
        for($i = 0; $i <= 5; $i++){
            if(substr($mytrim, 0, -1) == ''){
                $mytrim = substr($mytrim, 0, -1);
            }
        }
        $punct = array(".",",","?","!");
        if(!in_array($mytrim, $punct)){ $mytrim .= '.'; } 
        return $mytrim;
    }

它返回:

$mytrim = 'Hey there I am traa la la. .';

为什么它不起作用的任何想法?

3 个答案:

答案 0 :(得分:6)

PHP具有内置trim功能。至于标点符号,你的代码应该可以正常工作(追加)。

代码示例:

<?php

    $testString = "   hello world      ";
    $trimmedString = trim($testString); // will contain "hello world"
    $lastChar = substr($trimmedString, strlen($trimmedString)-1); // will be "d"
    $punct = array(".",",","?","!");
    if(!in_array($lastChar, $punct))
        echo $trimmedString.'.'; //will output "hello world."

答案 1 :(得分:1)

function test ($string)
{
    $string = trim($string);
    if ((substr($string, -1)) != ".")
    {
         $string .= ".";
    }
}

答案 2 :(得分:1)

function adspunctuation($str)
{
   $str = trim($str) . (substr($str, -1)!='.' ? '.' : '');
   return $str;
}