Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]zmiana słów w stringu
shreker
post
Post #1





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 21.05.2008

Ostrzeżenie: (0%)
-----


witam potrzebuję zamienić określone słowa w tekście na inne, to jest akurat proste:
  1. $string = 'Jakiś tekst zawierający różne słowo typu prawa i prawa ucznia, oraz inne.';
  2. $find = array('ucznia', 'słowo');
  3. $replace = array('uczennicy', 'słowa');
  4. $result = str_replace($find, $replace, $string);
  5. echo $result;

problem pojawia się kiedy chcę pozostawić niektóre sformułowania (np.: "prawa ucznia") niezmienione, a zawierają one słowa do podmiany (np.: "ucznia").
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Np.
- robisz listę zwrotów nie do zamiany
- robisz replace podmieniając ww. zwroty na coś typu ##index_z_tablicy##
- robisz normalnego replace
- robisz replace odwrotnego do pierwszego.
Go to the top of the page
+Quote Post
shreker
post
Post #3





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 21.05.2008

Ostrzeżenie: (0%)
-----


czyli dodaję np:
  1. $wykluczone = array('prawa ucznia', 'prawa człowieka');
  2. $result_w = str_replace($wykluczone, $replace, $string); // co zamiast $replace ?
  3.  
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Coś na zasadzie:

  1. $wykluczone = ['prawa ucznia', 'prawa uczennicy'];
  2. $wykluczeniaReplace = array_map(function($value){ return "##{$value}##";}, array_keys($wykluczone));
  3.  
  4. str_replace($wykluczone, $wykluczeniaReplace, $text);
  5. // ...
  6. str_replace($wykluczeniaReplace, $wykluczone, $text);
Go to the top of the page
+Quote Post
shreker
post
Post #5





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 21.05.2008

Ostrzeżenie: (0%)
-----


dzięki za pomoc, zrobiłem to inaczej z wykorzystaniem "preg_replace_callback".
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Można na wiele sposobów (IMG:style_emoticons/default/smile.gif) Od najprostszych się zaczyna
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:20