1

我正在尝试制作一个函数,该函数可以删除字符串中的空格,如果没有,则广告标点符号。

这是我的测试字符串:

$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. .';

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

4

3 回答 3

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."
于 2012-08-18T01:41:44.720 回答
1
function adspunctuation($str)
{
   $str = trim($str) . (substr($str, -1)!='.' ? '.' : '');
   return $str;
}
于 2012-08-18T01:45:44.813 回答
1
function test ($string)
{
    $string = trim($string);
    if ((substr($string, -1)) != ".")
    {
         $string .= ".";
    }
}
于 2012-08-18T01:41:23.427 回答