Php verwijdert voorloop- en volgspaties. Hoe verwijder ik spaties uit strings in PHP? Voorbeeld van het vinden en vervangen van spaties

Wanneer u met tekst werkt, moet u deze vaak opmaken. Dit is nodig voor een correcte weergave en gemakkelijke leesbaarheid. Dit is nodig als de gebruiker wat informatie invoert en fouten maakt: in plaats van één spatie geeft hij twee spaties aan en plaatst hij een tab aan het begin. Er zijn verschillende manieren om spaties in PHP te verwijderen.

Bijsnijden()

De Trim-functie zoekt naar extra tekens aan het begin of einde van een tekenreeks. Dit:

  • reguliere ruimte;
  • tabel;
  • regeleinde karakter.

Het is in deze vorm geschreven:

Tekenreeks trimmen (tekenreeks $str [, tekenreeks $character_mask = "\t\n\r\0\x0B" ])

$str is de string die wordt verwerkt, en $character_mask is de extra tekens. $character_mask is een optioneel attribuut.

Preg_vervangen

Een functie voor het zoeken en vervangen van tekens met behulp van een reguliere expressie.

Gemengd preg_replace (gemengd $patroon , gemengd $vervanging , gemengd $subject [, int $limit = -1 [, int &$count ]])

  1. $pattern - het patroon dat u zoekt.
  2. $replacement - tekens die moeten worden vervangen.
  3. $subject - het object dat wordt verwerkt.
  4. $limit - aantal gemaakte vervangingen.

$pattern en $replacement kunnen arrays zijn. In dit geval wordt vervanging uitgevoerd in overeenstemming met de indexen.

Str_replace()

Je kunt spaties uit een string in PHP verwijderen met behulp van de str_replace() methode. Het vervangt alle exemplaren van de zoekreeks door de vervangende reeks.

Gemengde str_replace (gemengde $search , gemengde $replace , gemengde $subject [, int &$count ])

Gebruikt als een vereenvoudigde preg_replace() -methode.

  1. $search - de te vinden waarde.
  2. $replace - de tekenreeks die moet worden vervangen.
  3. $subject - het object waarin het zoeken en vervangen wordt uitgevoerd.
  4. $count stelt het aantal vervangingen in.
$bodytag = str_replace("%body%", "zwart", " "); // kent toe: Hll Wrld f PHP $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O ", "U"); $onlyconsonants = str_replace($vowels, "", "Hallo wereld van PHP"); // wijst toe: Je zou elke dag pizza, bier en ijs moeten eten $phrase = "Je zou fruit moeten eten , groenten en vezels elke dag."; $healthy = array("fruit", "groenten", "vezels"); $yummy = array("pizza", "bier", "ijs"); $ newphrase = str_replace($healthy, $lekker, $phrase); // kent toe: 2 $str = str_replace("ll", "", "goede mevrouw molly!", $count echo $count;

Voorbeeld van het vinden en vervangen van spaties

Deze functies zijn van toepassing in de meeste situaties, zelfs in complexere situaties.

De gebruiker heeft bijvoorbeeld enkele gegevens ingevoerd die later op het scherm worden afgedrukt. Om de leesbaarheid en perceptie van de tekst als geheel te verbeteren, moet deze informatie worden verwerkt - herhaalde spaties verwijderen en vervangen door enkele spaties.

$text1 = "Lange tekst met extra spaties";

In dit geval kun je zien dat er twee en drie spaties tussen de woorden staan. De procedure voor het verwijderen van spaties in PHP is als volgt.

1. Eerst moet je een string met behulp van een functie in een array van strings veranderen.

Explode(“ ”, $text1)​

Er wordt één spatie gebruikt als scheidingsteken. Op deze manier zullen lichaamsdelen die geen afzonderlijke elementen van de array zijn, één spatie minder bevatten.

2. Het resultaat is een array van strings zoals deze:

$array = ["Lang", "volumineus", "tekst", "met", "extra spaties"]​

3. Elk element wordt verwerkt door een functie:

Preg_replace("/\s+/", " ", $text1)​

Gebruik de reguliere expressie /\s+/ om naar een of meer spaties te zoeken. Alle gevonden overeenkomsten worden vervangen door de tekenreeks ‘ ‘. Er wordt gezocht in de variabele $text1.

4. Als resultaat krijgen we een string met het juiste aantal spaties, die gemakkelijk door de gebruiker kan worden waargenomen.

Goedenavond, onlangs hebben we het onderwerp wachtwoorden en hun veilige opslag enigszins besproken, namelijk dat we de hashfunctie hebben bestudeerd. Vandaag gaan we verder met het onderwerp wachtwoorden en hun opslag, en bestuderen we de functies waarmee je dat kunt doen verwijder spaties aan het begin en einde van een tekenreeks. En hier zijn de wachtwoorden en spaties uit een string verwijderen, vertel je het mij? Ten eerste heeft deze functie uiteraard niet specifiek betrekking op wachtwoorden, maar werkt deze alleen met tekenreeksen, en ik zei alleen over wachtwoorden als de toepassing ervan. U kunt het dus gebruiken waar en wanneer u maar wilt, afhankelijk van uw situatie.

Waar is het voor? snij spaties aan het begin en einde van de regel af? Als u bij het registreren een wachtwoord op de site opgeeft en op de een of andere manier per ongeluk op de spatiebalk drukt en dit niet merkt, dan bestaat uw wachtwoord bijvoorbeeld niet uit vier tekens, maar uit vijf, inclusief uw spatie.

En je zult niet begrijpen waarom het wachtwoord niet geschikt is, omdat de hash van deze string anders zal zijn. Daarom raad ik altijd aan om spaties in een lijn bij te snijden om dergelijke nuances te voorkomen. Nu gaan we verder met het bekijken van een voorbeeld uit de praktijk. " 1234 " ;
$string_pass =;
$wachtwoord = md5(trim($string_pass ));
$wachtwoord2 = md5($string_pass ) echo
$wachtwoord2 = md5($string_pass ) "
"
;
$wachtwoord2 = md5($string_pass ) $wachtwoord;
?>

We creëren een variabele die ons wachtwoord zal zijn, en geven specifiek een spatie aan het begin en aan het einde van de regel aan. Vervolgens maken we een variabele waarin het gehashte wachtwoord al is opgeslagen en geven we de regel door trimfunctie , waarmee eerst alle onnodige spaties worden verwijderd, en pas daarna krijgen we het gehashte wachtwoord. En in de tweede variabele gebruiken we de functie niet om spaties te verwijderen en de string onmiddellijk te hashen. Vervolgens geven we de twee resultaten weer op het browserscherm en zien dat ze totaal verschillend zijn, ook al hebben we beide keren dezelfde string gebruikt. Vanwege de spaties is het resultaat echter compleet anders, dus u moet hier uiterst voorzichtig mee zijn. En nog een laatste ding moet ik je vertellen. Er zijn nog twee functies die spaties aan het begin van een regel of aan het einde van een regel verwijderen, en deze worden aangeroepen ltrim En rtrim

respectievelijk. Daarom, als u spaties aan een van de zijkanten wilt verwijderen, gebruik deze dan. En hiermee sluit ik dit artikel af en wens ik u succes bij al uw werk.

In elke taal is het bij het werken met tekenreeksen een typische taak om spaties aan het begin en aan het einde van de regel te verwijderen. In PHP zijn er drie functies voor deze doeleinden: ltrim(), rtrim(), trim(). De functie ltrim() verwijdert spaties aan het begin van een regel, rtrim() - aan het einde van een regel, trim() - aan zowel het begin als het einde. Wat interessant is, is dat deze functies, naast spaties, ook de ontsnappingssequenties voor nieuwe regels, regelterugloop, tabs en nultekens verwijderen.

$example = "\tHallo allemaal\n"; var_dump(trim($voorbeeld)); var_dump(rtrim($voorbeeld)); var_dump(ltrim($voorbeeld));

Als resultaat krijgen we:

String "Hallo allemaal" (lengte=12) string "Hallo iedereen" (lengte=14) string "Hallo allemaal" (lengte=13)

Het meest interessante is dat de bovenstaande functies ook door de gebruiker opgegeven tekens kunnen verwijderen. Om dit te doen, moeten de bovenstaande functies als tweede argument een string doorgeven die de tekens bevat die moeten worden verwijderd. Bijvoorbeeld:

$example = "Hoi allemaal\n"; var_dump(trim($voorbeeld, " y")); var_dump(rtrim($voorbeeld, " y\n")); var_dump(ltrim($voorbeeld, " yH"));

Als resultaat: