Hogyan lehet szóközt eltávolítani a karakterláncokból a PHP-ben? Szóközök eltávolítása PHP-ben Felesleges szóközök eltávolítása php
Bármely nyelven, amikor karakterláncokkal dolgozik, tipikus feladat a szóközök eltávolítása a sor elején és a végén egyaránt. A PHP-ben három függvény létezik erre a célra: ltrim(), rtrim(), trim(). Az ltrim() függvény eltávolítja a szóközöket a sor elején, az rtrim() - a sor végén, a trim() - a sor elején és a végén. Az érdekes az, hogy ezek a függvények a szóközök mellett eltávolítják az újsort, a kocsivisszaadást, a tabulátort és a null karakteres escape szekvenciákat is.
$example = "\tSzia mindenkinek\n"; var_dump(trim($example)); var_dump(rtrim($example)); var_dump(ltrim($example));
Ennek eredményeként a következőket kapjuk:
String "Hi everybody" (length=12) string "Hi everybody" (length=14) string "Hi everybody" (length=13)
A legérdekesebb az, hogy a fenti funkciók a felhasználó által megadott karaktereket is eltávolíthatják. Ehhez a fenti függvényeknek második argumentumként át kell adniuk a törölni kívánt karaktereket tartalmazó karakterláncot. Például:
$example = "YSzia mindenkinek\n"; var_dump(trim($example, " y")); var_dump(rtrim($example, " y\n")); var_dump(ltrim($example, " yH"));
Ennek eredményeként:
String "Hi everybody " (hossz=13) string " yHi everybod" (length=13) string "i everybody " (length=12)
Jó estét, nemrég kicsit érintettük a jelszavak és azok biztonságos tárolásának témáját, nevezetesen a hash funkciót tanulmányoztuk. Ma egy kicsit folytatjuk a jelszavak és tárolásuk témáját, és áttanulmányozzuk azokat a funkciókat, amelyekkel lehet távolítsa el a szóközt a karakterlánc elejéről és végéről. És itt vannak a jelszavak és szóközök eltávolítása egy karakterláncból, Mondd meg Te? Először is, ez a funkció természetesen nem kifejezetten a jelszavakra vonatkozik, hanem csak karakterláncokkal működik, és a jelszavakat csak alkalmazásként mondtam el. Ezért bárhol és bármikor használhatja, helyzetének megfelelően.
Mire való? vágja le a szóközöket a sor elején és végén? Ha a regisztráció során jelszót ad meg az oldalon, és véletlenül megnyomja a szóköz billentyűt, és nem veszi észre, akkor a jelszava például nem négy karakterből, hanem ötből áll, beleértve a szóközt is. És nem fogod megérteni, hogy a jelszó miért nem megfelelő, mert ennek a karakterláncnak a hash-je más lesz. Ezért mindig azt javaslom, hogy egy vonalban vágja le a szóközöket, hogy elkerülje az ilyen árnyalatokat. Most áttérünk egy gyakorlati példára.
$string_pass = " 1234 "
;
$jelszó = md5(trim($string_pass ));
$jelszó2 = md5($string_pass );
visszhang $jelszó;
visszhang "
"
;
visszhang $jelszó2;
?>
Létrehozunk egy változót, amely a jelszavunk lesz, és külön szóközt jelölünk a sor elején és végén. Ezután létrehozunk egy változót, amelyben a kivonatolt jelszó már tárolva lesz, és átvezetjük a sort trim funkció, amely először eltávolít minden felesleges szóközt, és csak ezután kapjuk meg a kivonatolt jelszót. A második változóban pedig nem használjuk a függvényt a szóközök eltávolítására és azonnali kivonatolásra. Ezután megjelenítjük a két eredményt a böngésző képernyőjén, és azt látjuk, hogy teljesen eltérőek, bár mindkét alkalommal ugyanazt a karakterláncot használtuk. A terek miatt azonban teljesen más az eredmény, ezért rendkívül óvatosnak kell lennie ezzel a kérdéssel. És még egy utolsó dolog, amit el kell mondanom. Van még két függvény, amely eltávolítja a szóközöket a sor elején vagy a sor végén, és ezek az ún. ltrimÉs rtrim illetőleg. Ezért, ha el kell távolítania a szóközöket bármelyik oldalról, használja azokat. Ezzel zárom ezt a cikket, és sok sikert kívánok minden munkájához.
Amikor szöveggel dolgozik, gyakran formáznia kell. Ez szükséges a helyes megjelenítéshez és a könnyű olvashatósághoz. Erre akkor van szükség, ha a felhasználó valamilyen információt beír és hibázik: egy szóköz helyett két szóközt jelez, az elejére tabulátort tesz. Számos módja van a szóközök eltávolításának a PHP-ben.
Vágás()
A Trim funkció extra karaktereket keres a karakterlánc elején vagy végén. Ez:
- szabályos tér;
- táblázatosítás;
- sortörés karakter.
Ebben a formában van leírva:
Karakterlánc levágás (string $str [, string $character_mask = "\t\n\r\0\x0B" ])
$str a feldolgozás alatt álló karakterlánc, a $character_mask pedig az extra karakterek. A $character_mask egy opcionális attribútum.
Preg_replace
Karakterek keresésére és cseréjére szolgáló függvény reguláris kifejezés használatával.
Vegyes preg_replace (vegyes $minta , vegyes $csere , vegyes $tárgy [, int $limit = -1 [, int &$count ]])
- $pattern - a keresett minta.
- $replacement – lecserélendő karakterek.
- $subject - a feldolgozás alatt álló objektum.
- $limit – a végrehajtott cserék száma.
A $minta és a $csere lehet tömb. Ebben az esetben a csere az indexeknek megfelelően történik.
Str_replace()
A PHP-ben az str_replace() metódussal távolíthatja el a szóközöket egy karakterláncból. A keresési karakterlánc minden előfordulását lecseréli a helyettesítő karakterláncra.
Vegyes str_replace (vegyes $search , vegyes $replace , vegyes $subject [, int &$count ])
Egyszerűsített preg_replace() metódusként használják.
- $search – a keresendő érték.
- $replace - a cserélendő karakterlánc.
- $subject - az objektum, amelyben a keresés és csere történik.
- $count beállítja a cserék számát.
Példa szóközök keresésére és pótlására
Ezek a funkciók a legtöbb helyzetben alkalmazhatók, még bonyolultabb esetekben is.
Például a felhasználó bevitt néhány adatot, amelyek később megjelennek a képernyőn. A szöveg egészének olvashatóságának és észlelésének javítása érdekében ezeket az információkat fel kell dolgozni - távolítsa el az ismétlődő szóközöket, cserélje ki egyetlen szóközre.
$text1 = "Hosszú szöveg extra szóközökkel";
Ebben az esetben láthatja, hogy két és három szóköz van a szavak között. A szóközök eltávolításának eljárása a PHP-ben a következő.
1. Először egy karakterláncot karakterláncok tömbjévé kell alakítania egy függvény segítségével.
Explode(“ ”, $szöveg1)
Egyetlen szóközt használunk határolóként. Így azok a testrészek, amelyek nem különálló elemei a tömbnek, eggyel kevesebb helyet tartalmaznak.
2. Az eredmény a következőhöz hasonló karakterláncok tömbje:
$array = ["Hosszú", "terjedelmes", "szöveg", "valamint", "extra szóközök"]
3. Minden elemet a következő függvény dolgoz fel:
Preg_replace("/\s+/", " ", $szöveg1)
Egy vagy több szóköz kereséséhez használja a /\s+/ reguláris kifejezést. Az összes talált egyezést a „” karakterlánc helyettesíti. A keresés a $text1 változóban történik.
4. Az eredmény egy megfelelő számú szóközzel rendelkező karakterlánc, amelyet a felhasználó könnyen észlel.