[PHP] White spaces in form trimmen *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Ik ben bezig met een formvalidator in PHP.
Gaat allemaal prima.
Maar een ding kom ik niet uit.
Stel dat ik een variable heb $naam en die is gevuld met: " Zoo Lan der "

Hoe kan ik dan een true of false geven op de spaties die tussen Zoo en Lan en tussen Lan en der staan?
Weet wel hoe ik ze moet weghalen:

<?
$string = "Zoo Lan der";
print $string;
?>
<br>
<?
$string = str_replace(' ', "", $string);
print $string;
?>

Ok, dank u

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

PHP:
1
$string = trim($string);


Deze functie haalt de spaties aan het begin en aan het einde weg. Hiermee hoef je dus helemaal geen gebruik te maken van str_replace.

http://www.php.net/trim

[ Voor 70% gewijzigd door dArtagnan op 26-10-2003 12:39 ]


Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Maar haalt (net nog getest) NIET de spaties IN een string weg.
En hij hoeft ze ook niet weg te halen: er moet een melding van komen dat de input niet juist is, en overnieuw moet worden ingevoerd!

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • Speedener
  • Registratie: September 2000
  • Laatst online: 12:54
Volgens mij kan dat wel met ereg of een van de varianten ervan.

[ Voor 41% gewijzigd door Speedener op 26-10-2003 12:44 ]

LG Therma V Split WP: HU143MA.U33-HN1636M NK5


Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Dat lijkt mij ook. Maar kan niet precies vinden hoe ik dit moet toepassen. Terwijl het eigelijk niet moeilijk kan zijn toch? ;)

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:12

crisp

Devver

Pixelated

bekijk het van de andere kant: welke tekens wel zijn toegestaan, en kijk of dat matched:

PHP:
1
if (!preg_match('/^[A-Za-z0-9]{3,}$/', $naam)) echo 'voudt!';

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 12-09 01:23
PHP:
1
2
3
4
5
6
<?
$string = " Zoo Lan der ";
$string = trim($string);
$number_of_spaces = subtr_count($string, " ");
echo $number_of_spaces;
?>

[ Voor 15% gewijzigd door Postman op 26-10-2003 12:46 ]


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Je kunt een explode doen op de spaties en dan het aantal elementen in de array tellen.

PHP:
1
2
3
4
5
6
7
8
9
$test = explode(" ", $string);
if (count($test) > 1)
{
    echo "fout";
}
else 
{
    echo "goed";
}

edit:

Oplossing van FlamerX is handiger

[ Voor 33% gewijzigd door dArtagnan op 26-10-2003 12:47 ]


Acties:
  • 0 Henk 'm!

  • Macros
  • Registratie: Februari 2000
  • Laatst online: 15-05 16:29

Macros

I'm watching...

Dit is de meest nette en snelste manier:

PHP:
1
2
3
4
5
$string = "Zoo Lan der";
if(strpos($string, ' ') === false)
   echo 'goed!';
 else
   echo 'fout';

[ Voor 19% gewijzigd door Macros op 26-10-2003 13:05 ]

"Beauty is the ultimate defence against complexity." David Gelernter


Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
crisp schreef op 26 October 2003 @ 12:45:
bekijk het van de andere kant: welke tekens wel zijn toegestaan, en kijk of dat matched:

PHP:
1
if (!preg_match('/^[A-Za-z0-9]{3,}$/', $naam)) echo 'voudt!';
Zat inderdaad net in die richting te denken! Kom er denk ik wel uit met preg_match of erreg. Jij bent trouwens wel HEEL vaak online. :P

Dank allemaal!!! _/-\o_

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
strpos is ook wel een goeie! Ga ik ook onthouden. Wat een diverse antwoorden allemaal. Geweldig! :)

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 08:29

Tjark

DON'T PANIC

en als iemand nou 'René' heet?

dan doet die mooie rexexp van Crisp 't niet.
Als je geen spaties wilt: trim erover heen gooien (want wat boeien spaties aan het begin of einde nou) en dan checken zoals Macros 't doet.

[ Voor 9% gewijzigd door Tjark op 26-10-2003 13:01 ]

*insert signature here


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:12

crisp

Devver

Pixelated

TjarkVerhoeven schreef op 26 oktober 2003 @ 13:01:
en als iemand nou 'René' heet?

dan doet die mooie rexexp van Crisp 't niet.
Als je geen spaties wilt: trim erover heen gooien (want wat boeien spaties aan het begin of einde nou) en dan checken zoals Macros 't doet.
Het was ook maar een voorbeeld, je kan 'm uitbreiden natuurlijk met meer toegestane tekens...
Feit is dat je meestal minder toegestane tekens hebt dan niet-toegestane tekens :P
Plus dat je op mijn manier nog meer dingen kan checken (minimale / maximale lengte bijvoorbeeld)

[ Voor 19% gewijzigd door crisp op 26-10-2003 13:05 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Macros
  • Registratie: Februari 2000
  • Laatst online: 15-05 16:29

Macros

I'm watching...

Met strpos moet je wel opletten dat je controleerd op false of true met ===.
Anders krijg je misschien een 0 terug ipv false, en dan staat er een spatie op pos 0.

"Beauty is the ultimate defence against complexity." David Gelernter


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 16:36
Macros schreef op 26 oktober 2003 @ 13:06:
Met strpos moet je wel opletten dat je controleerd op false of true met ===.
Anders krijg je misschien een 0 terug ipv false, en dan staat er een spatie op pos 0.
Ik stond op het punt om te replyen toen ik nog net even ververste en zag dat je je code had aangepast. ;)
Pagina: 1