• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Pozostaw tylko wybrane znaki w zmiennej typu string

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+2 głosów
435 wizyt
pytanie zadane 13 grudnia 2021 w PHP przez Bakkit Dyskutant (7,600 p.)
zamknięte 15 grudnia 2021 przez Bakkit

Cześć. Szukam już trochę po internecie i nie natrafiłem na nic, lub może po prostu coś przegapiłem.

Szukam funkcji, która pozostawi nam w zmiennej typu string tylko wybrane przez nas znaki.

Przykład:

$string = 'zmienna123';

$string_after_change = jakas_funkcja($string, ['1', '2', '3', '4', '5']);

echo $string_after_change; // output: "123"

Wiem, że w powyższym przykładzie mógłbym użyć funkcji która zamieni mi napis "zmienna" na " ", ale nie mam pojęcia czy w programie w otrzymanej zmiennej będzie napis "zmienna", "ogórek" czy "pomidor" etc, mam pewność jedynie co do cyferek.

Proszę o pomoc. 

komentarz zamknięcia: https://forum.pasja-informatyki.pl/556849/pozostaw-tylko-wybrane-znaki-w-zmiennej-typu-string?show=556851#a556851

3 odpowiedzi

+3 głosów
odpowiedź 13 grudnia 2021 przez Arkadiusz Waluk Ekspert (289,990 p.)
wybrane 15 grudnia 2021 przez Bakkit
 
Najlepsza
To może preg_replace() z wyrażeniem, które zamieni znaki inne niż wskazane na pusty string, czyli po prostu je usunie. Przykład: https://stackoverflow.com/questions/7059543/php-filter-using-preg-replace-to-allow-only-alphanumerics-and-some-punctuation
komentarz 15 grudnia 2021 przez Bakkit Dyskutant (7,600 p.)
Bardzo dziękuję za pomoc.
+1 głos
odpowiedź 13 grudnia 2021 przez Wiciorny Ekspert (278,710 p.)

napisanie wyrażenia regularnego i przefiltrowanie 

https://www.php.net/manual/en/function.preg-filter.php

preg_filter(
    string|array $pattern,
    string|array $replacement,
    string|array $subject,
    int $limit = -1,
    int &$count = null
): string|array|null

 

+1 głos
odpowiedź 13 grudnia 2021 przez qax Dyskutant (8,060 p.)

Można również samemu napisać odpowiednie pętle, które znak po znaku sprawdzą string:

<?php
$accepted_chars = array('k', 'o', 't');
$input_string = 'Ala ma kota, a kot ma Alę';
$output_string = '';
for ($loop = 0; $loop < strlen($input_string); $loop++) {
	for ($loop2 = 0; $loop2 < count($accepted_chars); $loop2++) {
		if ($input_string[$loop] == $accepted_chars[$loop2]) {
			$output_string .= $accepted_chars[$loop2];
		}
	}
}
echo $output_string;
?>

PS. To tak dla ciekawości bo nie wiem czy to najwydajniejsze rozwiązanie. smiley

Podobne pytania

0 głosów
2 odpowiedzi 1,091 wizyt
pytanie zadane 13 kwietnia 2019 w C i C++ przez Rajzok Początkujący (390 p.)
0 głosów
1 odpowiedź 275 wizyt
pytanie zadane 17 stycznia 2017 w JavaScript przez dkarski Obywatel (1,610 p.)
+1 głos
1 odpowiedź 409 wizyt
pytanie zadane 13 września 2020 w Python przez TeaCup Obywatel (1,370 p.)

93,187 zapytań

142,203 odpowiedzi

322,015 komentarzy

62,513 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2365p. - dia-Chann
  2. 2326p. - Łukasz Piwowar
  3. 2315p. - Łukasz Eckert
  4. 2301p. - CC PL
  5. 2269p. - Tomasz Bielak
  6. 2235p. - Łukasz Siedlecki
  7. 2232p. - rucin93
  8. 2169p. - Marcin Putra
  9. 2006p. - Michal Drewniak
  10. 1946p. - Adrian Wieprzkowicz
  11. 1901p. - Mikbac
  12. 1744p. - rafalszastok
  13. 1734p. - Anonim 3619784
  14. 1586p. - Dawid128
  15. 1480p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...