Komputery ze współczesnym światem

PHP wycinane po znaku. Przycinanie ciągu PHP: proste sposoby

Funkcjonować substr($string, $start, $length) , gdzie $string to zmienna zawierająca tekst, $start to znak, od którego rozpoczyna się odliczanie (0 jest brane za pierwszy znak), a $length to liczba znaków wybrany tekst.

$text = "Przykład i tekst";

$pierwszy = substr($tekst,0,6); // Pokazuje 6 znaków, zaczynając od 0, czyli pierwszego
echo $najpierw; // wyświetli „Przykład”.

$sekunda = substr($tekst,8,3); // Pokazuje 3 znaki, zaczynając od 8
echo $sekunda; // wypisze „i”
Jeżeli nie określisz parametru Liczba znaków (2. cyfra), funkcja wyświetli wszystkie pozostałe znaki

$text = "Przykład i tekst";

$trzeci = substr($tekst,8); // Pokazuje WSZYSTKIE znaki, począwszy od 8
echo $trzeci; // wydrukuje „i tekst”

Przycinanie tekstu w języku rosyjskim za pomocą funkcji PHP mb_substr

Funkcjonować mb_substr wykonuje te same zadania co substr, ale może także obsługiwać kodowanie wielobajtowe. Dlatego w przypadku tekstu rosyjskiego będzie to dla Ciebie przydatne mb_substr. Działa tak samo

$text = "Przykładowy tekst";

$first = mb_substr($text,0,6,"UTF-8"); // Pokazuje 6 znaków, zaczynając od 0, czyli pierwszego
// Uwaga! Określ kodowanie tekstu źródłowego! W tym przypadku utf-8
echo $najpierw; //wyświetli „Przykład”

$sekunda = mb_substr($text,7,6,"UTF-8"); // Pokazuje 6 znaków, zaczynając od 7
echo $sekunda; // wyświetli „tekst”
Należy pamiętać, że w przypadku cyrylicy (tekst rosyjski) kodowanie najlepiej podać na końcu funkcji. W przykładzie wykorzystano najpopularniejszą opcję - UTF-8

Przycinanie tekstu od końca

Jeżeli chcesz odciąć tekst od końca to w tym celu wskażemy dla zmiennej liczbę ujemną wskazującą od jakiego znaku zaczyna się zaznaczanie tekstu

$text = "Sprite i Fanta";

$pierwszy = substr($tekst,-6,5); // Pokazuje 5 znaków, zaczynając od szóstego od końca
echo $najpierw; //wypisze „Fant”

Po przycięciu dodajemy również tekst

Po przycięciu zmiennej tekstem dodaj na końcu dodatkowy tekst

$example = "Tekst tekst tekst tekst";

$przykład = substr($przykład,0,9); // Pokazuje 9 znaków, zaczynając od 0, czyli pierwszego
$przykład .= "więcej...";
echo $przykład; //wyświetli „Tekst tekstowy więcej…”
Wręcz przeciwnie, możesz na początku nagrać, a następnie przyciąć tekst

$text = "Wujek";

$example = "George i Michael";
$przykład = substr($przykład,0,6); // Pokazuje 6 znaków, zaczynając od 0, czyli pierwszego
$tekst .= $przykład;
echo $tekst; //wypisze „Wujek George”

Przycinanie tekstu do pierwszej spacji

$text = "Witaj, świecie!";
echo substr($tekst, 0, strpos($tekst, " ")); // Drukuje „Witam”

Gotowa funkcja PHP do przycinania tekstu przez PHP Words

funkcja wycinania($string, $długość)(
$string = mb_substr($string, 0, $długość,„UTF-8”); // wytnij i pracuj ze wszystkimi kodowaniami oraz wskaż kodowanie źródłowe
$pozycja = mb_strrpos($string, " ", "UTF-8"); // określ położenie ostatniej spacji. W ten sposób oddzielamy słowa.
$string = mb_substr($string, 0, $pozycja, "UTF-8"); // Przytnij zmienną według pozycji
zwróć $ciąg;
}

$text = "Wojna północna zakończyła się w 1721 roku";
wycięcie echa($tekst, 17); // wyświetli „Wojna Północna” bez części słowa „zakończona”

Możesz przycinać słowa poprzez tablicę...

$text = "Microsoft został założony przez Billa Gatesa w 1975 roku.";

$tablica = eksploduj(" ",$tekst); // przetwórz ciąg znaków na tablicę
$tablica = kawałek_tablicy($tablica,0,5); // wybierz pierwsze 5 elementów słowa
$nowytekst = implode(" ",$array); // przekonwertuj tablicę z powrotem na ciąg znaków

Echo $newtext;//Wyświetli komunikat „Microsoft został założony przez Billa Gatesa”

Konsultacje online dotyczące konserwacji strony internetowej w Uljanowsku: ICQ# 179104682

Jak przyciąć ciąg cyrylicy z za pomocą PHP

Data publikacji artykułu: 01.06.2014

Stworzenie strony internetowej w Uljanowsku z poważną funkcjonalnością i interakcją z bazami danych bardzo często wymaga, aby określona linia nie przekraczała określonej określonej objętości. Może to być potrzebne na przykład w celu ograniczenia liczby znaków przesyłanych do serwera bazy danych za pomocą pola wejściowego, aby wyświetlić tylko część linii na stronie serwisu (na przykład podczas tworzenia ogłoszeń prasowych o równej wysokości na liście) i do wielu innych zadań.

Pierwszą rzeczą, na którą napotykają początkujący programiści, jest funkcja PHP substr. W rzeczywistości służy do przycinania ciągów, a jego składnia jest prosta substr(string, int start [, int długość]), gdzie int start to znak początkowy, od którego należy rozpocząć wycinanie łańcucha, a opcjonalny parametr int długość to liczba znaków do wycięcia. Jednakże niedoświadczonemu programiście może wydawać się dziwne, jeśli spróbuje go użyć do przycięcia ciągu znaków cyrylicy w PHP. W wyniku pracy substr z ciągiem cyrylicy, na końcu przyciętego ciągu może pojawić się znak zapytania lub znak zapytania w rombie i z jakiegoś powodu całkowita liczba przyciętych znaków jest dwa razy mniejsza niż ta, która została określony w parametrze intlength. Dlaczego to się dzieje?

Faktem jest, że rosyjskie znaki w UTF-8 mają rozmiar 2 bajtów, a znaki łacińskie mają tylko 1 bajt. Funkcja PHP substr obcina ciąg znaków po bajtach, a nie po znakach. Jeśli ciąg znaków składa się ze znaków łacińskich, nie dzieje się nic dziwnego, ponieważ liczba znaków pokrywa się z liczbą bajtów. A podczas pracy z cyrylicą, gdzie każdy znak zajmuje 2 bajty, parametr długości int może z łatwością spaść na „środek” znaku, w wyniku czego na końcu linii cięcia podczas wyprowadzania będziemy zobacz ten nieszczęsny znak zapytania w diamencie.

Jak poprawnie wyciąć część linii za pomocą cyrylicy?

Rozwiązanie tego problemu jest w rzeczywistości bardzo proste. Aby poprawnie przyciąć PHP ciąg zawierający znaki cyrylicy, musisz użyć funkcji PHP iconv_substr

Składnia funkcji jest prosta:

iconv_substr (string, int start [, int długość [, zestaw znaków]])

Przykład przycięcia ciągu w języku rosyjskim do 80 znaków z kodowaniem UTF-8 przy użyciu iconv_substr:

$nowy_string = iconv_substr ($string, 0, 80, „UTF-8”);

Liczba zero w przykładzie oznacza, że ​​liczenie 80 znaków rozpoczyna się od samego początku linii.

Serwis zakłada odpowiednie zmiany na swoich stronach w zależności od urządzenia, z którego korzysta odwiedzający. Jeśli w przypadku elementów blokowych i inline prawie wszystko da się „zautomatyzować” za pomocą CSS i JavaScript, to przy generowaniu treści i korzystaniu z baz danych trudno obejść się bez strony serwera.

Zwykle obcinamy linię w PHP, gdy element układu HTML ma ograniczoną liczbę widocznych znaków, ale jest to zadanie prywatne.

Tradycyjne rozwiązanie

Jedną z najpopularniejszych i często używanych funkcji jest substr(). Przekazywane są do niego dwa lub trzy parametry:

  • ciąg źródłowy;
  • pozycja początkowa ($iPos);
  • długość podciągu do wycięcia ($iLen).

Ostatni parametr można pominąć. Jeśli podano tylko dwa parametry: wynikiem substr() będzie podciąg, od pozycji początkowej ($iPos) do końca oryginalnego ciągu. Jeśli zostały przekazane trzy parametry, to przycinamy ciąg PHP z pozycji początkowej ($iPos) do określonej długości ($iLen).

Wybranie za pomocą tej funkcji jedynie początku łańcucha jest możliwe, gdy pierwszy parametr ma wartość zero. Jeśli pozycja początkowa jest ujemna, PHP uzna znak na pozycji $iPos od końca łańcucha za początek, od którego obcinamy ciąg. Znaki w linii numerowane są od zera.

Specjalna funkcja

PHP rozpatruje zadanie „przecięcia sznurka” (w szerokim znaczeniu) w kontekście: z obu stron. Historycznie rzecz biorąc, jest to funkcja trim(), której celem jest usunięcie nieistotnych znaków:

  • spacje;
  • podziały wierszy;
  • powrót karetki;
  • tabulacja;
  • znaki zerowe

z obu końców linii. Jest to bardzo popularna funkcja, zwłaszcza podczas pracy z bazami danych, z których wybór często zawiera wiele spacji. Użycie funkcji eksploduj() często powoduje również dodanie dodatkowych znaków na początku i na końcu łańcucha.

Jednak nie wszyscy programiści wykorzystują pełny potencjał funkcji trim(). W przypadku zadania „obetnij ciąg znaków” PHP sugeruje użycie drugiego parametru funkcji, w którym można określić dowolny zestaw znaków, które należy wyeliminować z ciągu źródłowego.

Ważne jest, aby znaki były usuwane tylko z początku i końca ciągu źródłowego. Ważne jest, aby manipulować maskami znaków do usunięcia i kolejnością podzadań.

  • Najpierw odcinamy ciąg PHP po jednej masce na raz.
  • Potem kolejny.
  • Potem na trzecim.

W wyniku sekwencji możliwości wykorzystania jednej funkcji obcięliśmy tekst w PHP niezbędny do rozwiązania zadania.

Metody niestandardowe

Jeśli nie uwzględnimy całego zakresu funkcji łańcuchowych języka, to para funkcji eksplod()/implode() i funkcja str_replace() pozwala nam rozwiązywać niestandardowe problemy „wycinania” informacji łańcuchowych.

Wynik zapytania MySQL ma zawsze formalną strukturę zwracanych informacji, a zawartość pól (elementów) wyniku jest zawsze ustalana przez źródło, czyli programistę, który zaprojektował bazę danych.

To konkretny przykład, ale dokładnie odpowiada na pytanie: jak obciąć linię w PHP, gdy jest ich wiele. Funkcja trm() jest specyficzna, a jej historię wyznaczały zadania, gdy nie było zbyt wielu informacji i nie było potrzeby obcinania niczego poza nieistotnymi znakami.

Dzisiaj krążą informacje duże objętości a wycinanie wiersz po wierszu jest nie tylko niepotrzebne, ale także irracjonalne.

Opcją jest również dzielenie na komponenty, na przykład odcięcie sznurka. PHP automatycznie użyje funkcji eksplod() do wycięcia jednego dużego tekstu na wiele wymaganych linii. Podobny efekt można osiągnąć stosując funkcję str_replace(), czyli zastępując jedno wystąpienie znaku innym.

Dynamika i ilość informacji, które należy przetworzyć, to przede wszystkim odpowiednie rozwiązanie, a nie wykorzystanie jednej specjalnej funkcji.

Adaptacyjny układ strony internetowej polega na odpowiednich zmianach jej stron w zależności od urządzenia, z którego korzysta odwiedzający. Jeśli w przypadku elementów blokowych i inline prawie wszystko da się „zautomatyzować” za pomocą CSS i JavaScript, to przy generowaniu treści i korzystaniu z baz danych trudno obejść się bez strony serwera.

Zwykle obcinamy linię w PHP, gdy element układu HTML ma ograniczoną liczbę widocznych znaków, ale jest to zadanie prywatne.

Tradycyjne rozwiązanie

Jedną z najpopularniejszych i często używanych funkcji jest substr(). Przekazywane są do niego dwa lub trzy parametry:

    ciąg źródłowy; pozycja początkowa ($iPos); długość podciągu do wycięcia ($iLen).

Ostatni parametr można pominąć. Jeśli podano tylko dwa parametry: wynikiem substr() będzie podciąg, od pozycji początkowej ($iPos) do końca oryginalnego ciągu. Jeśli zostały przekazane trzy parametry, to przycinamy ciąg PHP z pozycji początkowej ($iPos) do określonej długości ($iLen).

Wybranie za pomocą tej funkcji jedynie początku łańcucha jest możliwe, gdy pierwszy parametr ma wartość zero. Jeśli pozycja początkowa jest ujemna, PHP uzna znak na pozycji $iPos od końca łańcucha za początek, od którego obcinamy ciąg. Znaki w linii numerowane są od zera.

Specjalna funkcja

PHP rozpatruje zadanie „przecięcia sznurka” (w szerokim znaczeniu) w kontekście: z obu stron. Historycznie rzecz biorąc, jest to funkcja trim(), której celem jest usunięcie nieistotnych znaków:

    spacje; podziały wierszy; powrót karetki; tabulacja; znaki zerowe

z obu końców linii. Jest to bardzo popularna funkcja, zwłaszcza podczas pracy z bazami danych, z których wybór często zawiera wiele spacji. Użycie funkcji eksploduj() często powoduje również dodanie dodatkowych znaków na początku i na końcu łańcucha.

Jednak nie wszyscy programiści wykorzystują pełny potencjał funkcji trim(). W przypadku zadania „obetnij ciąg znaków” PHP sugeruje użycie drugiego parametru funkcji, w którym można określić dowolny zestaw znaków, które należy wyeliminować z ciągu źródłowego.


Ważne jest, aby znaki były usuwane tylko z początku i końca ciągu źródłowego. Ważne jest, aby manipulować maskami znaków do usunięcia i kolejnością podzadań.

    Najpierw odcinamy ciąg PHP po jednej masce na raz. Potem kolejny. Potem na trzecim.

W wyniku sekwencji możliwości wykorzystania jednej funkcji obcięliśmy tekst w PHP niezbędny do rozwiązania zadania.

Metody niestandardowe

Jeśli nie uwzględnimy całego zakresu funkcji łańcuchowych języka, to para funkcji eksplod()/implode() i funkcja str_replace() pozwala nam rozwiązywać niestandardowe problemy „wycinania” informacji łańcuchowych.


Wynik zapytania MySQL ma zawsze formalną strukturę zwracanych informacji, a zawartość pól (elementów) wyniku jest zawsze ustalana przez źródło, czyli programistę, który zaprojektował bazę danych.

To konkretny przykład, ale dokładnie odpowiada na pytanie: jak obciąć linię w PHP, gdy jest ich wiele. Funkcja trm() jest specyficzna, a jej historię wyznaczały zadania, gdy nie było zbyt wielu informacji i nie było potrzeby obcinania niczego poza nieistotnymi znakami.

Dziś informacja krąży w ogromnych ilościach, a wycinanie wiersz po wierszu jest nie tylko niepotrzebne, ale i irracjonalne.

Opcją jest również dzielenie na komponenty, na przykład odcięcie sznurka. PHP automatycznie użyje funkcji eksplod() do wycięcia jednego dużego tekstu na wiele wymaganych linii. Podobny efekt można osiągnąć stosując funkcję str_replace(), czyli zastępując jedno wystąpienie znaku innym.


Dynamika i ilość informacji, które należy przetworzyć, to przede wszystkim odpowiednie rozwiązanie, a nie wykorzystanie jednej specjalnej funkcji.

Powiązane publikacje