2010-12-29 30 views
0

hi Ich muss eine Textdatei lesen und dann explodieren es zu zweiteiligen dann passen Sie es mit Namen dann dispay, wenn es übereinstimmt ... soweit der Code, den ich gemacht habe, ist unten angegeben..aber es funktioniert nicht .. kann irgendeinen man sagt mir was falsch ist mit diesem code ??Wie lese ich diese Textdatei in Stücken?

$name = "thomas"; 
$filename = file("land.txt"); 
//$contents = fread($handle, filesize($filename)); 
for($i=0; $i<count($filename); $i++) 
     { 
      $string = explode(":", $filename[$i]); 

      if($name == $string[1]) 
       $id = $string[0]; 
     } 

echo $id; 

In diesem Fall sollte es "D1" anzeigen; aber es tut nicht !!

Inhalt "land.txt" Datei

D1:thomas 
D6:benny 
D7:alwyn 
D25:mathew 
D9:peter 
+0

Was bedeutet var_dump ($ filename); Rückkehr? – Catalin

Antwort

0

Versuchen

$filename = file("land.txt", FILE_IGNORE_NEW_LINES); 

Oder

$string = explode(":", trim($filename[$i])); 

Was FILE_IGNORE_NEW_LINES

+0

Ergebnis von 'explode' ist keine Zeichenkette, Sie sollten' list ($ string) = explode (... 'oder nur' $ string [0] 'verwenden, um das gewünschte Ergebnis zu erhalten. –

+0

@Tatu Ulmanen - ??? – ajreal

+0

danke das funktioniert gut gut Ich habe vergessen, Trim hinzufügen ... aber warum brauchen wir das ?? – mathew

0

Hierher ist

if($name == $string[1]) use if($name == trim($string[1])).

Versuchen Sie dies und lassen Sie es mich wissen.

0
 
    $name = 'thomas'; 
    $content = file('land.txt'); 
    $id = NULL; 
    foreach($content as $no => $line){ 
    $array = explode(':', $line); 
    if($array[1] == $name) 
    $id = $array[0]; 
    } 
    echo $id;
Verwandte Themen