Riješeno: ukloniti ne alfanumeričke

Posljednje ažuriranje: 09/19/2023


[/ kod]

`[^A-Za-z0-9]` obrazac je ono što je poznato kao regularni izraz. Odgovara bilo kojem znaku koji nije slovo ili cifra.]

Prvi korak u razumijevanju koda je znati svrhu svakog elementa:

preg_replace funkcija

Funkcija `preg_replace` se koristi za izvođenje podudaranja i zamjene uzorka. Potrebna su tri parametra: obrazac za traženje, string kojim će se zamijeniti i ulazni niz.

Regularni izrazi

Regularni izraz je niz znakova koji formira obrazac pretraživanja. Kada tražite podatke u tekstu, možete koristiti ovaj obrazac pretraživanja da opišete ono što tražite.

  • U ovom slučaju koristimo `[^A-Za-z0-9]`.
  • Zagrade označavaju skup znakova, ali znak (^) unutar zagrada negira skup, što znači da će odgovarati bilo kojem znaku KOJI NE nalazi u skupu.
  • A-Za-z0-9 unutar zagrada predstavlja sva velika slova, sva mala slova i sve brojeve.

Dakle, `[^A-Za-z0-9]` će odgovarati bilo kojem nealfanumeričkom znaku. A kada se koristi s funkcijom `preg_replace`, učinkovito će ukloniti sve nealfanumeričke znakove.

Dodatna razmatranja za SEO i korisničko iskustvo

Ako generirate puževe ili na neki drugi način trebate sačuvati razmake, preporučuje se da razmake zamijenite znakom poput crtice (-) umjesto da ih potpuno uklonite. Ovo se može učiniti pomoću funkcije `str_replace`:

<?php
  $string = "Hello, World!";
  $string = str_replace(' ', '-', $string); // "Hello,-World!"
  $string = preg_replace("/&#91;^A-Za-z0-9 -&#93;/", '', $string); // "Hello-World"
  echo $string;
?>

Ovaj kod prvo zamjenjuje sve razmake crticama prije uklanjanja nealfanumeričkih znakova, efektivno čuvajući razmake kao crtice radi bolje čitljivosti i SEO-a.

Slični postovi: