[PHP] Detecteren dat een letter een nummer of een letter is?

Pagina: 1
Acties:
  • 207 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoe kun je detecteren of een character een nummer of een letter is, dus niet bijvoorbeeld een slash of een punt of een dollar teken?

Ik weet dat je het met preg_match() kunt doen, maar ik zocht een wat effecientere methode.

Kan ik iets met asci code doen, ik kan me zoiets herinneren uit een grijs verleden. (het gaat hier toch alleen maar om a-z en 0-9, geen duitse B's of iets dergelijks :) )

Acties:
  • 0 Henk 'm!

  • thaan
  • Registratie: Oktober 2004
  • Laatst online: 21:57
is_numeric($waarde) ?

Acties:
  • 0 Henk 'm!

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

http://nl2.php.net/preg_match

met bijvoorbeeld de volgende expressen '/^[a-z0-9]$/i'. Gebruik enkele quotes of escape de $ teken.
Verwijderd schreef op woensdag 20 december 2006 @ 22:07:
[...]

Dank je voor de reply, maar lezen is ook een kunst :) Kijk maar eens wat ik in m'n orginele post schreef:
"Ik weet dat je het met preg_match() kunt doen, maar ik zocht een wat effecientere methode." :P
DOH! Helemaal overheen gelezen. 8)7 Maar ik wou je toch even die wijsheid meegeven. :X ;)

[ Voor 124% gewijzigd door eghie op 20-12-2006 22:10 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dank je voor de reply.
Met is_numeric weet je alleen of een character een nummer is. Wat ik graag zou willen weten is of een character een letter of nummer is en geen speciaal teken zoals: /, ?, %, @, enzovoorts :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dank je voor de reply, maar lezen is ook een kunst :) Kijk maar eens wat ik in m'n orginele post schreef:
"Ik weet dat je het met preg_match() kunt doen, maar ik zocht een wat effecientere methode." :P

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

ctype_alnum($foo)

[ Voor 48% gewijzigd door CyBeR op 20-12-2006 22:09 ]

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 19-09 21:26

DataGhost

iPL dev

http://nl2.php.net/types
http://nl2.php.net/type
Misschien moet je dat eens doornemen, het is toch wel een stuk basiskennis hoor. Een beetje eigen inzet wordt hier wel verwacht, daar is nog nooit iemand aan doodgegaan. Typ gewoon in de adresbalk http://php.net/<zoekwoord> en dan kom je al een heel eind.

[ Voor 4% gewijzigd door DataGhost op 20-12-2006 22:11 ]


Acties:
  • 0 Henk 'm!

Verwijderd

ASCII waarde van je character nemen om te vergelijken ?

Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
PHP:
1
2
3
4
5
6
7
8
9
10
11
$types = array ( 'a', 'b', 'c', 'd' );
$input = 'c';

if ( is_numeric ( $input ) )
{
    echo 'cijfer';
}
elseif ( array_search ( strtolower ( $input ), $types ) )
{
    echo 'karakter';
}

[ Voor 3% gewijzigd door XWB op 20-12-2006 22:19 ]

March of the Eagles


Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Da's allemaal een boel moeilijk doen voor iets waar php gewoon een built-in functie voor heeft die ik al eerder genoemd heb...

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Ja, zo kan het dus ook:

PHP:
1
2
3
$input = 'c';

var_dump ( ctype_alnum ( $input ) );

March of the Eagles


Acties:
  • 0 Henk 'm!

  • Isnowiz
  • Registratie: Mei 2005
  • Laatst online: 16-09 11:42
Als je op basis van ascii waarde wilt testen kun je dat zo doen:
<?php
$input = ord('<teken>');
if (($input >= 48 && $input <= 57) || ($input >= 65 && $input <= 90) || ($input >= 97 || $input <= 122)) {
echo "0-9, A-Z or a-z";
}
?>

Of dit efficient is weet ik niet. Over het algemeen hoef je je daar met PHP weinig zorgen om te maken.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dank je mensen :>
Dat php is toch wel handig, die heeft overal functies voor. Het maakt het soms wel wat lastig om de goede functie voor de job te vinden.

De aanschaf van een snellere harddisk kan weer wat uitgesteld worden.
Ik had namelijk een erg groot aantal bestanden in 1 directory staan als disk cache, nu heb ik ze onderverdeeld in subdirectories (a, b, c, d, e, enz) en hopelijk is dat allemaal wat effecienter.

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

Isnowiz schreef op woensdag 20 december 2006 @ 22:34:
Als je op basis van ascii waarde wilt testen kun je dat zo doen:
<?php
$input = ord('<teken>');
if (($input >= 48 && $input <= 57) || ($input >= 65 && $input <= 90) || ($input >= 97 || $input <= 122)) {
echo "0-9, A-Z or a-z";
}
?>

Of dit efficient is weet ik niet. Over het algemeen hoef je je daar met PHP weinig zorgen om te maken.
Let op dat deze code _altijd_ waar is; en dus fout. De laatste OR moet je nog even vervangen door een AND en het is al een stuk logischerder.
Pagina: 1