In PHP versions before 4.4.1, ctype functions have a bug handling very large integers.
http://bugs.php.net/bug.php?id=34645
See Crimson's comment under ctype_digit, or this test code from the bug:
<?php
$id = 394829384;
var_dump($id);
ctype_digit($id);
var_dump($id);
?>
Expected result:
----------------
int(394829384)
int(394829384)
Actual result:
--------------
int(394829384)
NULL
The fix is to cast it as a string:
<?php
ctype_digit((string)$id);
?>
... or use a current version of PHP!
Character type συναρτήσεις
Εισαγωγή
Οι παρεχόμενες συναρτήσεις αυτής της extension ελέγχουν εάν ένας χαρακτήρας ή string ανήκει σε μία συγκεκριμένη character class σύφμωνα με το ισχύον locale (ανατρέξτε επίσης στη setlocale()).
Όταν καλούνται με παράμετρο τύπου integer, συμπεριφέρονται ακριβώς όπως οι αντίστοιχές τους της C στο header αρχείο "ctype.h".
Όταν καλούνται με παράμετρο τύπου string, το ελέγχουν και επιστρέφουν TRUE μόνο εάν κάθε χρακτήρας ανταποκρίνεται στα δεδομένα κριτίρια. Όταν καλούνται με empty string το αποτέλεσμα είναι πάντα TRUE.
Περνώντας οτιδήποτε άλλο εκτός από string ή integer επιστρέφεται αμέσως FALSE.
Απαιτήσεις
Καμία, απαίτηση, εκτός από τις συναρτήσεις της standard C library που είναι πάντα διαθέσιμες.
Εγκατάσταση
Από την έκδοση 4.2.0 της PHP είναι εκ των προτέρων enabled. Σε παλαιότερες εκδόσεις πρέπει να κάνετε configure και compile την PHP με την επιλογή --enable-ctype.
Ρυθμίσεις κατά την εκτέλεση
Αυτή η επέκταση δεν έχει directives ρύθμισης ορισμένα στο php.ini.
Τύποι Πόρων
Αυτή η επέκταση δεν έχει resource τύπους ορισμένους.
Προκαθορισμένες Σταθερές
Αυτή η επέκταση δεν έχει σταθερές ορισμένες.
Table of Contents
- ctype_alnum — Έλεγχος για αλφαριθμητικούς χαρακτήρες
- ctype_alpha — Έλγχος για αλφαβητικούς χαρακτήρες
- ctype_cntrl — Έλεγχος για χαρακτήρες control
- ctype_digit — Έλεγχος για αριθμητικούς χαρακτήρες
- ctype_graph — Έλεγχος για εκτυπώσιμους χαρακτήρες εκτός του space
- ctype_lower — Έλεγχος για μικρά γράμματα
- ctype_print — Έλεγχος για εκτυπώσιμους χαρακτήρες
- ctype_punct — Έλεγχος για κάθε εκτυπώσιμο χαρακτήρα που δεν είναι whitespace ή αλφαριθμητικό
- ctype_space — Έλεγχος για χαρακτήρες whitespace
- ctype_upper — Έλεγχος για κεφαλαία γράμματα
- ctype_xdigit — Έλεγχος για χαρακτήρες που αναπαριστούν ένα δεκαεξαδικό ψηφίο
ctype
03-Jan-2006 12:58
In case the ctype_*() functions aren't compiled in your PHP and you can't recompile for some reason (e.g. shared host) you can use the compatability functions from the MediaWiki project which use preg_* as a replacement[1], removing lines 2 and 3 in the source should make them suitable for usage elsewhere.
Shameless self-advertisement, but hey, we find them useful;)
1. A tinyurl because the submission script complained about long lines: http://tinyurl.com/7hz4l
1. The real url split up:
http://cvs.sourceforge.net/viewcvs.py/*checkout*/
wikipedia/phase3/includes/compatability/ctype.php
