2011-07-26 19 views
5

W jaki sposób mogę skapitalizować tylko ostatnią literę ciągu znaków w postaci.Zamień na ostatnią literę ciągu znaków

Na przykład

hello 

postać:

hellO 
+0

z ciągu? Masz na myśli akapit/zdanie/słowo? W przeciwnym razie robisz 'strtoupper()' na ostatniej pozycji w zmiennej łańcuchowej, którą kontrolujesz. –

+4

'echo strrev (ucfirst (strrev (" cześć ")));'; p – karim79

+0

@ karim79, to znacznie lepiej niż mój pomysł, powinieneś opublikować go jako odpowiedź. – Brad

Odpowiedz

1

Istnieją dwie części niniejszego. Po pierwsze, musisz wiedzieć, jak zdobyć części łańcuchów. Do tego potrzebna jest funkcja substr().

Następnie istnieje funkcja do wpisania wielkimi literami ciągu o nazwie strtotupper().

$thestring="Testing testing 3 2 1. aaaa"; 
echo substr($thestring, 0, strlen($thestring)-2) . strtoupper(substr($thestring, -1)); 
12

zawiłe, ale zabawa:

echo strrev(ucfirst(strrev("hello"))); 

Demo: http://ideone.com/7QK5B

jako funkcję:

function uclast($str) { 
    return strrev(ucfirst(strrev($str))); 
} 
+0

To działa świetnie! kiedy wchodzę w to tak, ale dla tego, co próbuję zrobić, to w wordpressie zmień tytuł strony na wszystkie małe litery i na wielkie litery. na przykład: teraz tytuł pojawia się jako strona przykładowa. Chcę, aby pojawił się jako przykładowa strona. heres co próbowałem, ale nie działa 'kod' Kathy

+0

Niestety nie wiesz, jak tworzyć bloki kodu tutaj :) – Kathy

+1

@Kathy: '$ str = strtolower (the_title());' first then. Jeśli to nie zadziała, prawdopodobnie wystąpiłby błąd w funkcji 'the_title()'. –

0

Oto algorytm:

1. Split the string s = xyz where x is the part of 
    the string before the last letter, y is the last 
    letter, and z is the part of the string that comes 
    after the last letter. 
    2. Compute y = Y, where Y is the upper-case equivalent 
    of y. 
    3. Emit S = xYz 
2

Kiedy $s jest ciąg (Demo):

$s[$l=strlen($s)-1] = strtoupper($s[$l]); 

Albo w postaci funkcji:

function uclast($s) 
{ 
    $l=strlen($s)-1; 
    $s[$l] = strtoupper($s[$l]); 
    return $s; 
} 

A dla rozszerzonych musi mieć wszystko małymi literami z wyjątkiem ostatniego znaku wyraźnie górny -case:

function uclast($s) 
{ 
    $l=strlen($s)-1; 
    $s = strtolower($s); 
    $s[$l] = strtoupper($s[$l]); 
    return $s; 
} 
0

Małe/małe/mieszane litery dla wszystkich następujących może być używany

<?php 
    $word = "HELLO"; 

    //or 

    $word = "hello"; 

    //or 

    $word = "HeLLo"; 

    $word = strrev(ucfirst(strrev(strtolower($word)))); 

    echo $word; 
?> 

wyjście dla wszystkich słów

hellO 
Powiązane problemy