0

私はこのコードを持っています:

$CapDeliveryCityANDState = str_replace('\, ', '\,', ucwords(str_replace('\,', '\, ', strtolower($CapDeliveryCityANDState))));
$CapDeliveryCityANDState = strrev(ucfirst(strrev($CapDeliveryCityANDState)));

これにより、すべての単語の最初の文字が大文字になり、残りが小文字になり、コンマ「」の後に最初の2文字が大文字になりますが、別のものを追加して、「'」がある場合は大文字にします。これまでのところ、私が持っているものはこの例でうまく機能します:

cHiCago, ilになりますChicago, IL

もしそうならそうo'fallon, moなるでしょうがO'fallon, MO、私はそれを望んでいますO'Fallon, MO(アポストロフィの後の資本)

助けてくれてありがとう...

解決策は次のとおりです。

    $CapDeliveryCityANDState = str_replace('\, ', '\,', ucwords(str_replace('\,', '\, ', strtolower($CapDeliveryCityANDState))));
    $CapDeliveryCityANDState = strrev(ucfirst(strrev($CapDeliveryCityANDState)));
    if(strpos($CapDeliveryCityANDState, "'")) {
            $pos = strpos($CapDeliveryCityANDState, "'") + 1;
    }
    $CapDeliveryCityANDState = substr_replace($CapDeliveryCityANDState, strtoupper($CapDeliveryCityANDState[$pos]), $pos, 1);
    $CapDeliveryCityANDState[$l=strlen($CapDeliveryCityANDState)-2] = strtoupper($CapDeliveryCityANDState[$l]);

必要に応じて、このコードにさらに追加しました。

$CapDeliveryCityANDState = $contact_CityandStateSTR;
if(strlen($CapDeliveryCityANDState) >= 5){ //If more then 5 letters then do the below
$CapDeliveryCityANDState = str_replace('\, ', '\,', ucwords(str_replace('\,', '\, ', strtolower($CapDeliveryCityANDState))));
$CapDeliveryCityANDState = strrev(ucfirst(strrev($CapDeliveryCityANDState)));
if(strpos($CapDeliveryCityANDState, "'")) {
        $pos = strpos($CapDeliveryCityANDState, "'") + 1;
$CapDeliveryCityANDState = substr_replace($CapDeliveryCityANDState, strtoupper($CapDeliveryCityANDState[$pos]), $pos, 1);
}

$mystringz = $CapDeliveryCityANDState;
$findmez   = ',';
$posz = strpos($mystringz, $findmez);
if ($posz !== false) {
// IF NOT FALSE THEN CAP. LAST 2 LETTERS (STATE)
$CapDeliveryCityANDState[$l=strlen($CapDeliveryCityANDState)-2] = strtoupper($CapDeliveryCityANDState[$l]);
} else {
// ELSE IF FALSE THEN LEAVE AS IS
$CapDeliveryCityANDState = $contact_CityandStateSTR;
}
}
$CapDeliveryCityANDState = str_replace(" ,", ",", $CapDeliveryCityANDState); //remove space after city
$CapDeliveryCityANDState = str_replace(",", ", ", $CapDeliveryCityANDState); //add space after comma
$CapDeliveryCityANDState = preg_replace('!\s+!', ' ', $CapDeliveryCityANDState); //Check and remove double space
4

1 に答える 1

1

strstr() でアポストロフィを見つけます。値が存在する場合は、値を 2 つの部分 (アポストロフィの前後) に分解し、それらを大文字にしてから、再びアポストロフィで implode() します。

于 2012-12-04T15:40:25.610 に答える