Php vágja le a szóközt az élek körül. Hogyan lehet szóközt eltávolítani a karakterláncokból a PHP-ben? Példa szóközök keresésére és pótlására

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 ]])

  1. $pattern - a keresett minta.
  2. $replacement – ​​cserélendő karakterek.
  3. $subject - a feldolgozás alatt álló objektum.
  4. $limit – 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.

  1. $search – a keresendő érték.
  2. $replace - a cserélendő karakterlánc.
  3. $subject - az objektum, amelyben a keresés és csere történik.
  4. A $count beállítja a cserék számát.
$bodytag = str_replace("%body%", "fekete", " "); // hozzárendeli: Hll Wrld f PHP $ magánhangzók = array("a", "e", "i", "o", "u", "A", "E", "I", "O ", "U"); $onlyconsonants = str_replace($vowels, "", "Hello World of PHP"); // hozzárendelés: Minden nap egyél pizzát, sört és fagylaltot $phrase = "Gyümölcsöt kell enned , zöldségek és rostok minden nap."; $healthy = array("gyümölcs", "zöldség", "rost"); $fincsi = array("pizza", "sör", "fagylalt"); ​​$ newphrase = str_replace($egészséges, $fincsi, $kifejezés); // hozzárendeli: 2 $str = str_replace("ll", "", "jó kisasszony molly!", $count); echo $count; ?>

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özzel.

$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 egy 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. Ennek eredményeként egy megfelelő számú szóközzel rendelkező karakterláncot kapunk, amelyet a felhasználó könnyen észlel.

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.

Bármely nyelven, amikor karakterláncokkal dolgozik, tipikus feladat a szóközök eltávolítása a sor elején és 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 az újsort, a kocsivisszaadást, a tabulátort és a null karakteres escape szekvenciákat is eltávolítják.

$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)