logo

Łańcuchy (przetwarzanie tekstu, string, ciągi znaków) w PHP

Za przechowywanie tekstu w PHP odpowiada typ string. Jest to typ łańcuchowy, w którym pojedynczy znak zajmuje 1 bajt, a maksymalna długość tekstu nie może być większa jak 2 GB. PHP traktuje ciągi znaków jak ciągi bajtów, stąd mogą wystąpić przy przetwarzaniu tekstu Unicode różnego rodzaju problemy.

Oznaczanie tekstu w PHP

Tekst w PHP oznaczamy poprzez użycie:

  • cudzysłowu,
  • apostrofu,
  • składni heredoc,
  • składni nowdoc.

Przy użyciu cudzysłowu i heredoc interpreter PHP zamieni występującą nazwę zmiennej w ciągu znaków na jej wartość. W przykładzie na końcu niniejszego artykułu pokazano wszystkie metody oznaczania w PHP ciągów znakowych i różnice między tymi oznaczeniami.

Uwaga! Aby użyć znaku cudzysłowu wewnątrz ciągu oznaczonego cudzysłowem używamy znaku "\". Oto przykład: $tekst="W PHP często używamy znaku \" (cudzysłów)".

Operator łączenia łańcuchów

Operatorem łączenia ciągów znaków jest w PHP kropka ".", a nie znak plusa, jak w przypadku liczb. Trzeba się do tego przyzwyczaić, gdyż dodawanie zmiennych tekstowych w postaci $tekst1+$tekst2 zamiast $tekst1.$tekst2 jest jednym z najczęściej popełnianych błędów w PHP. W przykładzie drugim zaprezentowano operator łączenia tekstów w PHP.

Instrukcje dostępne w PHP

W PHP mamy do dyspozycji wiele instrukcji, które dają możliwość przetwarzania tekstu.

Oto wybrane instrukcje i funkcje dotyczące przetwarzania tekstu w PHP wraz z linkami do ich opisu.

Lista w trakcie budowy...

Funkcja Składnia Opis
iconv_strlen iconv_strlen($tekst, $kodowanie) Funkcja iconv_strlen w PHP zwraca liczbę znaków w tekście, z możliwością wyboru strony kodowania znaków w tekście.
lcfirst lcfirst($tekst)

Funkcja lcfirst w PHP zamienia pierwszą literę w przekazanym argumencie na małą literę.

ltrim ltrim($tekst[,$znaki])

Funkcja ltrim w PHP usuwa z końca tekstu białe znaki (lub inne).

mb_strlen mb_strlen($tekst, 'UTF-8') Funkcja mb_strlen w PHP zwraca liczbę znaków w tekście. Przedrostek "mb" oznacza "wielobajtowy".
nl2br nl2br($tekst, true/false) Funkcja dodaje przed znacznikiem końca tekstu (\r\n, \n\r, \n and \r) znacznik XHTML <br /> (dla wartości true drugiego parametru) lub <br> (HTML) dla wartości false drugiego z parametrów.
printf printf("format", $arg1,..., $argN)
Funkcja printf wyświetla wartości zmiennych podanych jako argumenty funkcji w odpowiednim formacie.
rtrim rtrim($tekst[,$znaki])

Funkcja rtrim w PHP usuwa z początku tekstu białe znaki (lub inne).

str_ireplace str_ireplace($z, $na, $tekst2) Funkcja str_replace w PHP daje możliwość wymiany część tekstu na inny, bez względu na wielkość liter.
str_replace str_replace($z, $na, $tekst2) Funkcja str_replace w PHP daje możliwość wymiany część tekstu na inny.
strcasecmp strcasecmp($tekst1, $tekst2) Funkcja strcasecmp w PHP jest wykorzystywana do porównywania ciągów znakowych bez rozróżniania wielkich i małych liter.
strcmp strcmp($tekst1, $tekst2) Funkcja strcmp w PHP jest wykorzystywana do porównywania ciągów znakowych.
stripos stripos( $tekst,$ciag [,$start])

Działa jak funkcja strpos, ale nie rozróżnia wielkości liter.

stristr stristr( $tekst,$ciag [,$tryb])

Działa jak funkcja strstr, ale nie rozróżnia wielkości liter.

strlen strlen($tekst) Funkcja strlen w PHP zwraca długość tekstu w bajtach. To jedna z najczęściej używanych funkcji tekstowych.
strncmp strncmp($tekst1, $tekst2, $n) Funkcja strncmp w PHP jest wykorzystywana do porównywania $n - pierwszych ciągów znakowych.
strrpos strrpos( $tekst, $podciąg [,$start])

Funkcja strrpos w PHP służy do znajdowania podciągu znaków w badanym tekście, rozpoczynając przeszukanie od końca (szuka wystapień danego ciągu z prawej strony danego tekstu). Funkcja zwraca numer pozycji odnalezionego ciągu.

strpos strpos( $tekst, $podciąg [,$start])

Funkcja strpos w PHP służy do znajdowania podciągu znaków w badanym tekście, rozpoczynając od wskazanego miejsca. Funkcja zwraca numer pierwszej pozycji odnalezionego ciągu.

strtolower strtolower( $tekst)

Funkcja strtolower odpowiada za zamianę ciągu znaków wielkich liter na ciąg małych liter.

strtoupper strtoupper( $tekst)

Funkcja strtoupper odpowiada za zamianę ciągu znaków małych liter na ciąg wielkich liter.

strstr strstr( $tekst,$ciag [,$tryb])

Funkcja strstr w PHP zwraca część łańcucha począwszy od pierwszego wystąpienia szukanego podciągu znaków aż do końca przeszukiwanego tekstu lub od początku tekstu do pozycji znalezionego podciągu znaków.

strtr strtr( $tekst,$z,$na) lub strtr($tekst,$slownik)

Funkcja strtr w PHP pozwala na tłumaczenie znaków i/lub zamianę ich na inne.

substr substr( $tekst,$od,$dlugosc)

Funkcja substr w PHP wycina fragment tekstu.

substr_replace substr_replace( $tekst,$na,$start [,$ile])

Funkcja substr_replace w PHP umożliwia zamianę fragmentu ciągu tekstowego na inny.

trim trim($tekst[,$znaki])

Funkcja trim w PHP usuwa z początku i końca tekstu białe znaki (lub inne).

ucfirst ucfirst($tekst)

Funkcja ucfirst w PHP zamienia pierwszą literę w przekazanym argumencie na wielką literę.

ucwords ucwords($tekst)

Funkcja ucwords w PHP zamienia pierwszą literę w każdym wyrazie w przekazanym argumencie na wielką literę.


Przykład 1

Przykład ten prezentuje różne metody zapisywania tekstu w zmiennej i interpretowania zmiennych w nim zawartych.

<?php
//zmienna tekstowa
$planeta='Jowisz';
//formaty zapisu tekstu
$t1='Moja ulubiona planeta to $planeta.';
$t2="Moja ulubiona planeta to $planeta.";
$t3=<<<poczatek1
Moja ulubiona planeta to $planeta.
poczatek1;
$t4=<<<'poczatek2'
Moja ulubiona planeta to $planeta.
poczatek2;
//wyświetlenie zmiennych
print $t1.'<br>';
print $t2.'<br>';
print $t3.'<br>';
print $t4.'<br>'; ?>

Jak działa skrypt? W zmiennej $planeta przechowujemy tekst "Jowisz". Użyjemy go potem kilka razy.

Do zmiennej $t1 przypisujemy tekst za pomocą notacji apostrofu. W tej notacji nazwy zmiennych nie są interpretowane, więc przy wyświetlaniu potem tej zmiennej, wyświetlana jest nazwa zmiennej $planeta zamiast wartości tej zmiennej.

Do zmiennej $t2 przypisujemy dokładnie ten sam tekst, ale używany cudzysłowu. Efekt wyświetlenia zmiennej $t2 jest inny, gdyż teraz w miejsce zmiennej $planeta interpreter języka wstawił wartość przechowywaną w tej zmiennej, a więc słowo "Jowisz".

Zmienna $t3 została zapisana z użyciem notacji heredoc i działa tak samo jak cudzysłów.

Zmienna $t4 została zapisana w notacji nowdoc i działa tak samo jak przy użyciu apostrofów.

UWAGA! Można w ciągu znaków używać klamer dla oznaczenia zmiennej. To poprawia bardzo przejrzystość kodu. Polecany przez nas sposób zapisu wartości w zmiennej tekst będzie następujący:

$t1='Moja ulubiona planeta to {$planeta}.';

Wtedy będzie wiadomo, że kropka na końcu zdania nie jest częścią nazwy zmiennej. To bardzo poprawia czytelność kodu.

Przykład 2

Pokażemy w tym przykładzie jaki jest efekt łączenia prawidłowego i błędnego tekstów.

<?php
$t1='1';
$t2='2';
echo "Gdy użyjemy znaku + otrzymamy wynik łączenia: ";
echo $t1+$t2;
echo '
'; echo "Gdy użyjemy znaku . otrzymamy wynik łączenia: "; echo $t1.$t2; ?>

Jak działa skrypt? W jednej zmiennej przechowujemy tekst '1', a w drugiej '2'. Gdy użyjemy znaku "+", interpreter wyświetli wynik dodawania liczb i w efekcie otrzymamy typ int wyniku. Nie o to nam chodziło. Chcieliśmy połączyć znaki '1' i '2' w ciąg dwóch znaków. Gdy użyjemy operatora kropki "." uzyskamy zadany efekt, czyli '12'.




© medianauka.pl, 2021-10-30, ART-4214

 

Formatowanie tekstu w PHP

Formatowanie tekstu w PHP

Tekst, który przechowujemy w zmiennych typu string trzeba kiedyś wyświetlić na ekranie. W PHP mamy wiele instrukcji, które to robią w różny sposób.

Porównywanie ciągów znaków w PHP

Porównywanie ciągów znaków w PHP

Dość często zachodzi potrzeba porównywania zmiennych tekstowych. Można używać w PHP zarówno operatorów jak i wbudowanych funkcji. Często okazuje się, że dają one wyniki różne od oczekiwanych.








Polecamy w naszym sklepie

Kolorowe skarpetki Kostka
Kolorowe skarpetki urodzinowe
Badania jako podstawa projektowania User Experience
kolorowe skarpetki góra lodowa
Matematyka konkretna
Niektóre treści nie są dostosowane do Twojego profilu. Jeżeli jesteś pełnoletni możesz wyrazić zgodę na przetwarzanie swoich danych osobowych. W ten sposób będziesz miał także wpływ na rozwój naszego serwisu.
© ® Media Nauka 2008-2021 r.