Προς το περιεχόμενο

Πρόβλημα php ανάγνωση γραμμών μέχρι χαρακτήρα


Sotiris Kalathas

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω ένα αρχείο .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 :confused: )

 

Ευχαριστώ εκ των προτέρων!

Δημοσ.

Δοκίμασε το παρακάτω:

 

 

<?php

$file = file("example.txt");

 

foreach ($file as $line){

list($match, $trash) = explode('|', $line);

echo $match . "<br />";

}

 

?>

 

Η file_get_contents επιστρέφει string ενώ το η λογική σου και η foreach περιμένουν array (το οποίο και επιστρέφει η file)

Αρχειοθετημένο

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

  • Δημιουργία νέου...