strlen πρόβλημα με το 0

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

strlen πρόβλημα με το 0

Δημοσίευση από dpa » 10 Φεβ 2011 10:37

Παιδιά η συνάρτηση strlen() μετράει τους χαρακτήρες.

Όταν όμως ένα αριθμός είναι 025 δεν μετράει το 0 (μηδεν) για να εμφανίσει 3 μόνο αν το περάσω σαν string το κάνει.

Εγώ δεν θέλω να το περάσω σαν string διότι θέλω αυτό που εισάγει ο χρήστης να είναι αριθμός και να μην κάνει λάθος καταχώρηση.

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

strlen πρόβλημα με το 0

Δημοσίευση από gvre » 10 Φεβ 2011 10:57

Πέρνα το ως string και κάνε τον έλεγχο με preg_match.

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

strlen πρόβλημα με το 0

Δημοσίευση από ThyClub » 10 Φεβ 2011 13:21

Κάνε τον έλεγχο με strlen σαν string και μετά πέρασε το απο την intval();

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

strlen πρόβλημα με το 0

Δημοσίευση από fafos » 10 Φεβ 2011 16:37

Greek way!! prostheteis enan arithmo kai kaneis thn metrhsh meion 1:

Κώδικας: Επιλογή όλων

<?
$num = '025';
$num = '1'.$num;

$metra = strlen&#40;$num&#41; -1;

echo $metra;
?>
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Pavel
Honorary Member
Δημοσιεύσεις: 1046
Εγγραφή: 08 Αύγ 2003 00:05
Τοποθεσία: UK

strlen πρόβλημα με το 0

Δημοσίευση από Pavel » 10 Φεβ 2011 23:18

Η is_numeric() δεν σου κάνει δουλειά;
Εσύ είσαι τρελός.

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

strlen πρόβλημα με το 0

Δημοσίευση από Rapid-eraser » 15 Φεβ 2011 10:08

Άσχετο το 025 είναι οκταδικός αριθμός όχι δεκαδικός αυτό σημαίνει πως το 0 μπροστά στο νούμερο δεν είναι χαρακτήρας του αριθμού παρά μόνο σημείο για να καταλάβει η php ότι δεν πρόκειται για δεκαδικό αλλά για οκταδικό. Αν θες να το μετρήσεις σαν string θα πρέπει να το κάνεις string όπως πολύ σωστά εντόπισες [ έστω και με typecast strlen((string)025) ]
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης