Formatowanie łańcuchów
Usuwanie z tekstu pustych przestrzeniu - trim()
Funkcja trim()
usuwa białe znaki (symbol nowego wiersza \n
, powrotu karetki \r
, tabulacji \t
, znaki końca wiersza \0
oraz spacje) znajdujące się przed tekstem oraz za tekstem. Jeżeli chcemy "przyciąć" tekst tylko po stronie lewej stosujemy funkcję ltrim()
, natomiast po stronie prawej rtrim()
.
Ćwiczenie 3_1_0_1. Usuwanie białych znaków - testowanie funcji trim()
Zastosuj jeden plik z następującym skryptem skryptem PHP.
<body>
<pre>
<?php
$tekst=' Ala ma kota
';
echo $tekst;
echo '<br />';
$tekst=trim($tekst);
echo $tekst;
?>
</pre>
</body>
Spójrz na drugi wiersz wyświetlonych tekstów. Wielokrotne spacje pomiędzy wyrazami ma
oraz kota
pozostały. Obcięte zostały białe znaki na zewnątrz tekstu.
Przystosowanie tekstu do kodu HTML- nl2br()
Wiemy, że HTML ignoruje wielokrotne spacje, czy znaki końca wiersza. Tekst jest wyświetlany w jednej linnii a nowy wiersz jest wymuszany może być jedynie rozmiarami elementu w którym tekst się znajduje. Fukcja nl2br()
, zastępuje znaki końca wiersza łańcuchem '
.
'
Ćwiczenie 3_1_0_2. Znaki końca wiersza w kodowaniu HTML
Zastosuj jeden plik z następującym skryptem skryptem PHP.
<body>
<?php
$tekst='To jest jakiś długi tekst, składający się z kliku wierszy, to jest wiersz 1;
To jest jakiś długi tekst, składający się z kliku wierszy, to jest wiersz 2;
To jest jakiś długi tekst, składający się z kliku wierszy, to jest wiersz 3;
To jest jakiś długi tekst, składający się z kliku wierszy, to jest wiersz 4;
To jest jakiś długi tekst, składający się z kliku wierszy, to jest wiersz 5';
echo $tekst;
echo '<br /><br />';
$tekst=nl2br($tekst);
echo $tekst;
?>
</body>
Formatowanie do wyświetlenia - printf()
Do wyświetlania stosowaliśmy do tej pory echo
, które należy do składni języka, natomiast print()
jest funkcją i zwraca true
lub false
- w przypadku niepowodzenia. Działanie echo
oraz print()
jest identyczne, wyświetlają łańcuch taki jaki jest, bez dodatkowego formatowania.
Jeżeli chcemy zastosować formatowanie, należy zastosować funkcję printf()
, której prototyp wygląda następująco: int printf(string string format [.mixed argumenty...])
. Pierwszy parametr, to łańcuch opisujący kształt wyświetlanych danych, natomiast pozostałe parametry to zmienne, które są podstawiane do formtowanego łańcucha.
Ćwiczenie 3_1_0_3. Formatowanie do wyświetlenia za pomocą printf()
Zastosuj jeden plik z następującym skryptem skryptem PHP.
<body>
<?php
$wartosc=25.4;
echo "Wartość wynosi $wartosc"; echo '<br />';
print("Wartość wynosi $wartosc"); echo '<br />';
printf("Wartość wynosi %s", $wartosc); echo '<br />';
//% - wyznacznik konwersji, %s - zamień na ciąg
printf("Wartość wynosi %.2f", $wartosc); echo '<br />';
?>
</body>
W kodzie widzimy wyznacznik konwersji, którego konstrukcja jest następująca:
% ['znak dopełnienia][-][szerokość][.dokładność]typ
.
-
Znak dopełnienia
jest opcjonalny (dlatego pokazany jest w nawiasach kwadratowych), rozszerza on zmienną do określonej szerokości np. dodanie zer poprzedzająych liczbę w stylu02
. Domyślnie znakiem dopełnienia jest spacja. Każdy znak poza spacją lub zerem należy poprzedzić znakiem apostrofu. -
Znak
-
jest opcjonalny i wskazuje, że dane w polu mają być wyrównane do lewej strony zamiast domyślnej - prawej. -
Parametr
szerokość
zaczyna sie kropką i podaje liczbę miejsc po przecinku. -
typ
określany jest jednym z kodów:-
b - zinterpretować jako
integer
i wyświetlić jako liczbę binarną -
c - zinterpretować jako
integer
i wyświetlić jako znak -
d - zinterpretować jako
integer
i wyświetlić jako liczbę dziesiętną -
f - zinterpretować jako
double
i wyświetlić jako liczbę zmiennoprzecinkową -
o - zinterpretować jako
integer
i wyświetlić jako liczbę ósemkową -
s - zinterpretować jako
string
i wyświetlić jako łańcuch -
u - zinterpretować jako
integer
i wyświetlić jako liczbę dziesiętną bez znaku -
x - zinterpretować jako
integer
i wyświetlić jako liczbę szesnastkową z małymi literami a-f -
y - zinterpretować jako
integer
i wyświetlić jako liczbę szesnastkową z dużymi literami A-F
-
b - zinterpretować jako
Jeżeli zapomniałeś jak przygotować i gdzie zapisywać pliki testowe: