A PHP substr_replace funkciója

A substr_replace négy paramétere

A substr_replace funkciónak három kötelező (eredeti string, cserestring, kezdőpont) és egy opcionális paramétere (hosszúság) van.

  1. Eredeti string — Ez az eredeti stringünk, melyen végrehajtjuk a műveletet.
  2. Cserestring — Ezt a stringet használjuk arra, hogy lecseréljünk mindent a stringen belül, a kezdőponttól a végső pontig (melyet a hosszúság határoz meg).
  3. Kezdőpont — Ez az a pozíció az eredeti stringben, amellyel a csere kezdetét jelöljük. A negatív érték megadásával meghatározhatjuk, hány karakterrel a string végétől kezdjük a műveletet.
  4. Opcionális hosszúság — Ez határozza meg, hogy hány karaktert szeretnénk lecserélni az eredeti stringben a kezdőponttól számítva. Ha nincs megadva a hosszúság, a string vége lesz a végpont. Ha az érték 0, akkor egy karakter sem lesz lecserélve, és beszúrás () lesz végrehajtva. A negatív érték a string végétől számolt karakterek számát határozza meg.

Egy példa a hosszúság paraméter megadása nélkül

Lássunk egy példát a funkció működésére! A következő substr_replace példa mutatja, mi történik akkor, ha kihagyjuk a hosszúság paramétert a különböző kezdőpontoknál.

PHP-kód:

// a string, melyet személyre kell szabni
$original = 'ABC123 Hello, Mr Kovacs! DEF321';

// kezdőpont 5
$sp5 = substr_replace($original, 'Five', 5);

// kezdőpont 12
$sp12 = substr_replace($original, 'Twelwe', 12);

// kezdőpont 0
$sp0 = substr_replace($original, 'Zero', 0);

// kezdőpont -1
$spneg1 = substr_replace($original, 'Minus 1', -1);

// Echo minden stringre
echo 'Eredeti string: ' . $original . '<br />';

echo 'Kezdőpont 5: ' . $sp5 . '<br />';
echo 'Kezdőpont 12: ' . $sp12 . '<br />';
echo 'Kezdőpont 0: ' . $sp0 . '<br />';
echo 'Kezdőpont -1: ' . $spneg1;

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

Eredeti string: ABC123 Hello, Mr Kovacs! DEF321

Kezdőpont 5: ABC12Five

Kezdőpont 12: ABC123 HelloTwelwe

Kezdőpont 0: Zero

Kezdőpont -1: ABC123 Hello, Mr Kovacs! DEF32Minus 1

 

Ahogy a példa is mutatja, ha nem határozzuk meg a negyedik paramétert, a hosszúságot, a kezdőpont után minden lecserélődik a második paraméterre, azaz a cserestringre.

Megjegyzés: Az első csere az 5. pozíción ment végbe, mely az $original-ban a 3. karakter volt. Ez a 3 és minden, ami követte, le lett cserélve a cserestringre. Ne feledd, hogy a karakterek számolását a nullától kell kezdeni! Az $original stringet így címkézhettük volna:

A betű — 0. pozíció

B betű — 1. pozíció

C betű — 2. pozíció

1 karakter — 3. pozíció

2 karakter — 4. pozíció

3 karakter — 5. pozíció

A substr_replace funkció a hosszúság paraméter megadásával

Ha a fenti példa nem felel meg a céljainknak, és szeretnénk precízebbé tenni a funkciót, bizony bele kell merülnünk a részletekbe, és meg kell határoznunk a hosszúságot.

Tegyük fel, hogy meg akarunk szabadulni a csúnya pszeudoreferenciáktól (ABC123, DEF321) a string elején és végén. Mivel mindkét string hossza 6, és tudjuk, hogy az egyik a string elején, a másik pedig a végén van, az ABC123-ra a 0-t használhatjuk mint kezdőpontot, a DEF321-re pedig a -6 értéket. Azzal, hogy a cserestring üres "", valami hasonlót érhetünk el, mint a kiválasztás-törlés paranccsal a szövegszerkesztőkben.

PHP-kód:

// a string, melyet személyre kell szabni
$original = 'ABC123 Hello, Mr Kovacs! DEF321';

// az ABC123 eltávolítása és megőrzése a $cleanedstr-ben
$cleanedstr = substr_replace($original, '', 0, 6);

// a DEF321 eltávolítása a $cleanedstr-ből
$cleanedstr2 = substr_replace($cleanedstr, '', -6, 6);

// Echo minden stringre
echo 'Eredeti string: ' . $original . ' <br />';
echo 'Tiszta #1: ' . $cleanedstr . ' <br />';
echo 'Tiszta #2: ' . $cleanedstr2;

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

Eredeti string: ABC123 Hello, Mr Kovacs! DEF321

Tiszta #1: Hello, Mr Kovacs! DEF321

Tiszta #2: Hello, Mr Kovacs!

 

Mielőtt továbblépnénk, gyakorolj egy kicsit a példán, hogy ráérezz, hogyan hatnak a kezdőpont és a hosszúság paraméterek a funkcióra.

Beszúrás a funkció segítségével

Azzal, hogy a hosszúság paramétert nullára állítjuk, megakadályozhatjuk, hogy a substr_replace funkció bármit is kitöröljön — így csak hozzá fogja adni a cserestringet az eredeti stringhez. Mikor használhatjuk a beszúrás műveletet? Például akkor, ha szeretnénk Kovács úr mellé még két személyt hozzáadni a példánkhoz. A beszúrás során egy új funkciót is alkalmazhatunk, mely a strlen nevet viseli. Nem nehéz azonban kitalálni, hogy ez a funkció a string lenght paramétert, azaz a karakterlánc hosszát jelöli.

Reméljük, a mai, stringekkel kapcsolatos leckénket sem találtad túl nehéznek. A jövő héten a stringek nagybetűsítésével fogunk foglalkozni. Addig is jó gyakorlást!

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 "Részletek mutatása" gombra olvashat.
Az oldal sütiket használ, hogy személyre szabja az oldalon megjelenő tartalmat és reklámokat.