home 2024. április 23., Béla napja
Online előfizetés
A PHP str_replace funkciója
Erdsoft
2019.07.01.
LXXIV. évf. 26. szám
A PHP str_replace funkciója

Előző heti leckénkben megismerkedtünk a strpos funkcióval, ma pedig folytatjuk a stringek világában való kalandozásunkat.

Egy programozó eszköztárában fontos elem az a tudás is, amelynek segítségével a PHP-string részeit új értékekre cserélhetjük. A str_replace funkció hasonlóan működik, mint a szövegszerkesztők „Replace All” parancsa, mely lehetővé teszi, hogy megadjuk a szót, melyet le szeretnénk cserélni, valamint azt a szót, amelyikre cserélni szeretnénk, majd elvégzi a szócserét az egész dokumentumot átfésülve.

A str_replace paraméterei

A str_replace funkciónak három paramétere van, ezek feltétlenül szükségesek ahhoz, hogy a funkció megfelelően működjön. A funkció így fest:

str_replace(search, replace, original_string)

1. search — Ez az, amire rákeresünk a stringben. Ez lehet egy string vagy egy tömb is.

2. replace — Minden találat a searchre ezzel az értékkel lesz helyettesítve. Ez lehet egy string vagy egy tömb is.

3. original_string — Ezen belül fog működni a search/replace. A str_replace funkció az original_string módosított változatát eredményezi, miután lefut.

Egy egyszerű példa a str_replace funkcióra

Képzeljük el, hogy egy iskolának dolgozunk, és egy olyan weboldalt kell létrehoznunk, amely a diákok szüleinek szól. A weboldalnak van egy bemutatkozó stringje, melyet testre szabunk aszerint, hogy a diák fiú-e vagy lány. A str_replace funkcióval ez nagyon egyszerű.

PHP-kód:

// a string amit testre kell szabni

$rawstring = 'Üdvözöljük a szülőket. Az Önök replaceme iskolánk tanulója!';

 

// fiú string

$malestr = str_replace('replaceme', 'fia', $rawstring);

// lány string

$femalestr = str_replace('replaceme', 'lánya', $rawstring);

 

echo 'Fiú: ' . $malestr . '<br />';

echo 'Lány: ' . $femalestr;

 

Megjelenítés a böngészőben:

Fiú: Üdvözöljük a szülőket. Az Önök fia iskolánk tanulója!

Lány: Üdvözöljük a szülőket. Az Önök lánya iskolánk tanulója!

Ennek a két, nemre szabott stringnek köszönhetően sokkal jobb felhasználói élményt tudunk nyújtani a diákok szüleinek, amikor bejelentkeznek az iskola weboldalára a gyerekek adataival.

str_replace arrays: több csere egyszerre

Előző példánkban csak egy szót cseréltünk le a stringünkben (replaceme), de mi a teendő akkor, ha több szót szeretnénk lecserélni? Használhatjuk többször egymás után a funkciót, vagy létrehozhatunk egy olyan helyőrző tömböt (placeholder array) és egy második tömböt, amely azokból az értékekből áll, amelyekre cserélni szeretnénk az eredeti értékeket. Ezzel a második megoldással egyszerre tudjuk lecserélni az összes szót.

Kulcsfontosságú, hogy megértsd, ezzel a technikával valójában két tömböt hozunk létre, melyet az értékcserére használunk. A helyőrző első eleme a csereértékek első elemére cserélődik, a helyőrző második eleme a csereértékek második elemére cserélődik, és így tovább.

Bővítsük ki előző példánkat, és lássuk, hogyan festene egy teljes formalevél, melyet a szülőknek szánunk!

PHP-kód:

// a string amit testre kell szabni

$rawstring = 'Üdvözöljük, kedves szülő! <br />

  A gyermek egy kiváló diákunk!

  Hisszük, hogy a névmás sokat tanul nálunk.<br />

  A tanárok kedvelik a névmás2, és gyakran dicsérik: "Ügyes nem!"<br />';

 

// helyőrző tömb

$placeholders = array('gyermek', 'névmás', 'névmás2', 'nem');

// fiú csereértékek

$male_vals = array('fia', 'fiú', 'fiát', 'kisfiú');

// lány csereértékek

$female_vals = array('lánya', 'lány', 'lányát', 'kislány');

 

// fiú string

$malestr = str_replace($placeholders, $male_vals, $rawstring);

// lány string

$femalestr = str_replace($placeholders, $female_vals, $rawstring);

 

echo 'Fiú: ' . $malestr . '<br />';

echo 'Lány: ' . $femalestr;

 

Megjelenítés a böngészőben:

Fiú: Üdvözöljük, kedves szülő!

A fia egy kiváló diákunk! Hisszük, hogy a fiú sokat tanul nálunk.

A tanárok kedvelik a fiú2 és gyakran dicsérik: "Ügyes kisfiú!"

 

Lány: Üdvözöljük, kedves szülő!

A lánya egy kiváló diákunk! Hisszük, hogy a lány sokat tanul nálunk.

A tanárok kedvelik a lány2 és gyakran dicsérik: "Ügyes kislány!"

 

Megjegyzés: Megfigyelheted, hogy van egy hiba a kódban. A névmás2 nem úgy lett lecserélve, ahogy szerettük volna (a stringjeinkben fiú2 és lány2 jelent meg, a fiát és lányát helyett). Ez azért történt, mert a névmás lett először lecserélve, így a névmás szó a névmás2-ben lecserélődött fiú és lányra, így fiú2 és lány2 lett. Amikor a névmás2 lett cserélve, nem volt találat, így a stringben nincs fiát és lányát szó.

Ahhoz, hogy elkerüljük ezt a problémát, a névmás2-t kell előrehoznunk a helyőrző tömbben, és megfelelően megváltoztatni a csereértékek sorrendjét is.

PHP-kód:

// helyőrző tömb

$placeholders = array('gyermek', 'névmás2', 'névmás', 'nem');

// fiú csereértékek

$male_vals = array('fia', 'fiát', 'fiú', 'kisfiú');

// lány csereértékek

$female_vals = array('lánya', 'lány', 'lányát', 'kislány');

 

Megjelenítés a böngészőben:

Fiú: Üdvözöljük, kedves szülő!

A fia egy kiváló diákunk! Hisszük, hogy a fiú sokat tanul nálunk.

A tanárok kedvelik a fiát, és gyakran dicsérik: "Ügyes kisfiú!"

 

Lány: Üdvözöljük, kedves szülő!

A lánya egy kiváló diákunk! Hisszük, hogy a lány sokat tanul nálunk.

A tanárok kedvelik a lányát, és gyakran dicsérik: "Ügyes kislány!"

 

Jó gyakorlást!

 


 

NYEREMÉNYJÁTÉK

Rovatunk elsődleges célja, hogy közelebbről is bemutassa a legismertebb webtechnológiákat. Azok között az olvasók között, akik minden héten követik rovatunkat, azaz velünk tanulják a programozás alapjait és kitöltik a feladatsort, a sorozat végén egy laptopot sorsolunk ki.

 

Heti kérdés: 

A str_replace funkció hányadik paramétere a keresendő szöveg(ek)?
1. Harmadik
2. Második
3. Első
 
A választ a tanulok@erdsoft.com e-mail-címre kell elküldeni, a tárgysorba pedig
a következőt kell beírni: HÉTNAP-TANULOK. Sok szerencsét!
 

Néhány szó rólunk:

Az ErdSoft (www.erdsoft.com) 2011-ben alakult meg. Csapatunkat a fiatalos lendület, a szakértelem, a folyamatos tanulás és tapasztalatgyűjtés jellemzi. Ügyfeleinknek igyekszünk teljes körű szolgáltatást nyújtani — bátran fordulhatnak hozzánk, legyen szó webfejlesztésről, alkalmazásokról, SEO-optimalizálásról, grafikai tervezésről, marketingről vagy szövegírásról. Csapatunk sikerét mi sem bizonyítja jobban, mint a több száz elkészült weboldal és a számos elégedett ügyfél Szerbiában, Magyarországon és az Egyesült Királyságban.

Hozzászólások
Hozzászólások
0
Hozzászólás küldése
1000 karakter áll rendelkezésére
A megjegyzésekben kifejtett vélemények a hozzászólások szerzőinek magánvéleményei, és nem tükrözik az internetes portál véleményét. A megjegyzéseket moderáljuk és jóváhagyjuk az általános szerződési feltételeknek megfelelően.
Támogatóink
Az oldal sütiket használ, hogy személyre szabjuk a tartalmakat és reklámokat, hogy működjenek a közösségi média funkciók, valamint hogy elemezzük a weboldal forgalmát. Bővebben a "Beállítások" gombra kattintva olvashat.
Az oldal sütiket használ, hogy személyre szabja az oldalon megjelenő tartalmat és reklámokat..