Sotiris Kalathas Δημοσ. 13 Απριλίου 2011 Δημοσ. 13 Απριλίου 2011 Έχω ένα αρχείο .txt στο server μου [ ο οποίος τρέχει php 5.2.17 σύμφωνα με την phpinfo() ] Αυτό το αρχείο είναι της μορφής: 94.69.225.213|1302714156 66.220.153.246|1302713745 όπου προφανώς μέχρι και τον χαρακτήρα " | " της κάθε γραμμής είναι διεύθυνση IP. Προσπάθησα μάταια να διαβάσω και να εμφανίσω τις διευθύνσεις IP (δηλαδή την κάθε γραμμή μέχρι τον χαρακτήρα | ) ><?php $file = file_get_contents("example.txt","r"); function my_str($h,$n){ return array_shift(explode($n,$h,2)); } foreach ($file as $line){ echo my_str($line,'|'); } ?> Η συνάρτηση foreach() στο παραπάνω παράδειγμα δεν δουλεύει: Warning: Invalid argument supplied for foreach() Εάν την παραλείψω, διαπιστώνω οτι η my_str() επιστρέφει 94.69.225.213, δηλαδή δουλεύει σωστά μέχρι εκείνο το σημείο. Μπορεί κανείς να βοηθήσει; (Είμαι σχετικά αρχάριος στην php ) Ευχαριστώ εκ των προτέρων!
Επισκέπτης Δημοσ. 13 Απριλίου 2011 Δημοσ. 13 Απριλίου 2011 Δοκίμασε το παρακάτω: <?php $file = file("example.txt"); foreach ($file as $line){ list($match, $trash) = explode('|', $line); echo $match . "<br />"; } ?> Η file_get_contents επιστρέφει string ενώ το η λογική σου και η foreach περιμένουν array (το οποίο και επιστρέφει η file)
Sotiris Kalathas Δημοσ. 14 Απριλίου 2011 Μέλος Δημοσ. 14 Απριλίου 2011 Problem solved! Σε ευχαριστώ!!!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.