Title: php και fgets (Συστήματα Υπολογιστών) Post by: aggalitsas on August 28, 2007, 20:58:30 pm να ρωτήσω κατι, στο εργαστήριο είχαμε κάνει κάποιες ασκησεις και σε μια απο αυτες χρησιμοποιούσες την fgeτs
Code: <?php Code: $firstname = fgets($ourFileHandle); και κάτι αλλο γιατι στο if έχει το "\n" ? μηπως ειναι η λυση σε αυτό που ρωτώ? Title: Re: php και fgets Post by: vasso on August 28, 2007, 21:27:18 pm Δεν ξέρω σίγουρα να σου πω, αλλά για να καταχωρηθεί η τιμή που δίνουμε στη μεταβλητή με την fgets δεν θέλει και ένα enter στο τέλος; έτσι για κάθε fgets έχουμε διαφορετική γραμμή
Title: Re: php και fgets Post by: aggalitsas on August 28, 2007, 21:58:41 pm Δεν ξέρω σίγουρα να σου πω, αλλά για να καταχωρηθεί η τιμή που δίνουμε στη μεταβλητή με την fgets δεν θέλει και ένα enter στο τέλος; έτσι για κάθε fgets έχουμε διαφορετική γραμμή δλδ η φγκετς παταει το εντερ? wow αυτά ειναι! πλακίτσαTitle: Re: php και fgets (Συστήματα Υπολογιστών) Post by: aggalitsas on August 28, 2007, 22:52:59 pm τη χρησιμοποιεις λάθος. οχι εγώ αλλα ο μεταπτυχιακός στο εργαστήριο ;D copy paste ειναι.η feof tι ειναι? Title: Re: php και fgets (Συστήματα Υπολογιστών) Post by: SolidSNK on August 28, 2007, 22:58:43 pm τη χρησιμοποιεις λάθος. οχι εγώ αλλα ο μεταπτυχιακός στο εργαστήριο ;D copy paste ειναι.η feof tι ειναι? rofl :P Τσεκάρει ποτε είναι το τέλος ενος file pointer, κοινώς χωρίς αυτή την επανάληψη η fgets θα τα παίξει :P Argh δε διάβασα όλο το post σου και βιάστηκα να απαντήσω αφου αλλού ηταν η ερώτηση. Λοιπόν αμα γνωρίζεις τον αριθμίο γραμμων ΔΕΝ χρειάζεται η feof(). Και για να απαντήσω στην ερώτηση σου, h fgets αυτόματα αυξάνει το pointer του handle σου :P . Οπότε το script δουλέυει, δε θα διαβάζει μόνο τη πρώτη γραμμή και για να μη λέω πίπες έμαθα και να διαβάζω όλο το post πριν απαντήσω. Title: Re: php και fgets (Συστήματα Υπολογιστών) Post by: aggalitsas on August 28, 2007, 23:05:55 pm α και κατι αλλο, οταν θελεις να αποθηκευσεις τα ονοματα σε ενα αρχει δεν ειναι καλυτερα στη fopen na dineis "a" anti "w"? αν δώσεις "W" δεν θα σβησει την προηγούμενη καταχώρηση?
Title: Re: php και fgets (Συστήματα Υπολογιστών) Post by: SolidSNK on August 28, 2007, 23:08:41 pm Σωστός είσαι και δες και το προηγούμενο reply γιατι έφαγε modify :P
Title: Re: php και fgets (Συστήματα Υπολογιστών) Post by: aggalitsas on August 28, 2007, 23:15:20 pm και για να μη λέω πίπες έμαθα και να διαβάζω όλο το post πριν απαντήσω. axaxaxa lol ok thx! Title: Re: php και fgets (Συστήματα Υπολογιστών) Post by: SolidSNK on August 28, 2007, 23:28:08 pm Ε ρε Νίκο :D
Α και το \n το έχει ακριβώς γιατί κάθε γραμμή περιλαμβάνει και line feed (\n) character της :) Δηλαδή ο χαρακτήρας που αλλάζει γραμμή συμπεριλαμβάνεται στην fgets οπότε πρέπει να το concat-άρει στο post['username'] για να γινει καλά η σύγκριση... Title: Re: php και fgets (Συστήματα Υπολογιστών) Post by: aggalitsas on August 29, 2007, 03:33:57 am Ε ρε Νίκο :D οχι και Νικο,Νικόλα θα με υποχρεώσεις! :P Α και το \n το έχει ακριβώς γιατί κάθε γραμμή περιλαμβάνει και line feed (\n) character της :) Δηλαδή ο χαρακτήρας που αλλάζει γραμμή συμπεριλαμβάνεται στην fgets οπότε πρέπει να το concat-άρει στο post['username'] για να γινει καλά η σύγκριση... τhx και πάλι Title: Re: php και fgets (Συστήματα Υπολογιστών) Post by: Emfanever on January 24, 2008, 15:05:32 pm Αν παρατηρήσεις στο registered.php, κατά την αποθήκευση των στοιχείων του χρήστη στο registrationDetails.txt (στον server), προστίθεται σε καθένα από αυτά η μεταβλητή $newline της οποίας η τιμή είναι "\n". Έτσι, ουσιαστικά κάθε στοιχείο αποθηκεύεται με ένα συμπληρωματικό \n στο τέλος, το οποίο δηλώνει το τέλος μιας γραμμής.Όταν όμως κατά το login εισάγεις τον κωδικό στη φόρμα,στον server αποστέλεται ο κωδικός χωρίς \n στο τέλος.Έτσι για να ισχύει η ισότητα στο if πρέπει να προσθέσεις το \n στη μεταβλητή που λαμβάνει μέσω $_GET τον κωδικό που μόλις εισήγαγες!
Όταν η εντολή fgets συναντήσει το /n καταλαβαίνει οτι εδώ τελειώνει μια γραμμή.Η αμέσως επόμενη εντολή fgets διαβάζει την αμέσως επόμενη γραμμή μέχρι να συναντήσει ξανά \n. ελπίζω να βοήθησα! ;) 8) ;D |