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