2017-01-15 1 views
0

1) Ich habe eine Textdatei (converted.txt), und dass Informationen Inhalt Benutzer:Wie konvertiert man Textdatei in Array in PHP?

0 hbhenet  pppoe D4:CA:6D:F1:5D:5A 10.23.0.254  8h1m36s    
1 R [email protected]  pppoe 00:27:22:16:3B:F2 10.17.0.253  8h1m36s    
2 R [email protected] pppoe 68:72:51:3A:53:1B 10.17.0.251  8h1m36s    
3 R [email protected] pppoe 24:A4:3C:9F:83:10 10.17.0.252  8h1m36s    
4 R [email protected] pppoe 24:A4:3C:E6:DD:3E 10.17.0.250  8h1m36s    
5 R [email protected] pppoe 44:D9:E7:DA:32:95 10.16.0.246  8h1m36s   

2) und was ich in meinem php getan haben, ist:

$file="converted.txt"; 
$fopen = fopen($file, "r"); 
$fread = fread($fopen,filesize($file)); 
fclose($fopen); 

$remove = "\n"; 
$split = explode($remove, $fread); 
$array[] = NULL; 
$tab = "\t"; 

foreach ($split as $string) 
{ 
    $row = explode($tab, $string); 
    array_push($array,$row); 
} 

echo "<pre>"; 
print_r($array); 
echo "</pre>"; 

3) die Ausgabe ist, wie:

Array 
(

    [0] => 
[1] => Array 
    (
     [0] => 0 hbhenet  pppoe D4:CA:6D:F1:5D:5A 10.23.0.254  8h1m36s    
    ) 

[2] => Array 
    (
     [0] => 1 R [email protected]  pppoe 00:27:22:16:3B:F2 10.17.0.253  8h1m36s    
    ) 

[3] => Array 
    (
     [0] => 2 R [email protected] pppoe 68:72:51:3A:53:1B 10.17.0.251  8h1m36s    
    ) 

[4] => Array 
    (
     [0] => 3 R [email protected] pppoe 24:A4:3C:9F:83:10 10.17.0.252  8h1m36s    
    ) 

[5] => Array 
    (
     [0] => 4 R [email protected] pppoe 24:A4:3C:E6:DD:3E 10.17.0.250  8h1m36s    
    ) 

[6] => Array 
    (
     [0] => 5 R [email protected] pppoe 44:D9:E7:DA:32:95 10.16.0.246  8h1m36s   
    ) 

) 

4) aber was ich will, ist:

Array (

[0] => Array 
    (
     [0] => Array 
      (
       [0] => 0 
       [1] => 
       [2] => hbhenet 
       [3] => pppoe 
       [4] => D4:CA:6D:F1:5D:5A 
       [5] => 10.23.0.254 
       [6] => 8h1m36s 
      ) 
     [1] => Array 
      (
       [0] => 1 
       [1] => R 
       [2] => [email protected] 
       [3] => pppoe 
       [4] => 00:27:22:16:3B:F2 
       [5] => 10.17.0.253 
       [6] => 8h1m36s 
      ) 
     [2] => Array 
      (
       [0] => 2 
       [1] => R 
       [2] => [email protected] 
       [3] => pppoe 
       [4] => 68:72:51:3A:53:1B 
       [5] => 10.17.0.251 
       [6] => 8h1m36s 
      ) 
     [3] => Array 
      (
       [0] => 3 
       [1] => R 
       [2] => [email protected] 
       [3] => pppoe 
       [4] => 24:A4:3C:9F:83:10 
       [5] => 10.17.0.252 
       [6] => 8h1m36s 
      ) 
     [4] => Array 
      (
       [0] => 4 
       [1] => R 
       [2] => [email protected] 
       [3] => pppoe 
       [4] => 24:A4:3C:E6:DD:3E 
       [5] => 10.17.0.250 
       [6] => 8h1m36s 
      ) 
     [5] => Array 
      (
       [0] => 5 
       [1] => R 
       [2] => [email protected] 
       [3] => pppoe 
       [4] => 44:D9:E7:DA:32:95 
       [5] => 10.16.0.246 
       [6] => 8h1m36s 
      ) 
    ) 
) 

irgendeine Idee? danke im voraus.

Antwort

3

Ich habe eine Datei mit dem Namen erstellt myfile.txt: -

0 hbhenet  pppoe D4:CA:6D:F1:5D:5A 10.23.0.254  8h1m36s    
1 R [email protected]  pppoe 00:27:22:16:3B:F2 10.17.0.253  8h1m36s    
2 R [email protected] pppoe 68:72:51:3A:53:1B 10.17.0.251  8h1m36s    
3 R [email protected] pppoe 24:A4:3C:9F:83:10 10.17.0.252  8h1m36s    
4 R [email protected] pppoe 24:A4:3C:E6:DD:3E 10.17.0.250  8h1m36s    
5 R [email protected] pppoe 44:D9:E7:DA:32:95 10.16.0.246  8h1m36s   

Jetzt habe ich unten Code angewandt: -

<?php 
$array = explode("\n", file_get_contents('myfile.txt')); 

echo "<pre/>";print_r($array); 

Und Ausgabe lautet: -

Array 
(
    [0] => 0 hbhenet  pppoe D4:CA:6D:F1:5D:5A 10.23.0.254  8h1m36s    
    [1] => 1 R [email protected]  pppoe 00:27:22:16:3B:F2 10.17.0.253  8h1m36s    
    [2] => 2 R [email protected] pppoe 68:72:51:3A:53:1B 10.17.0.251  8h1m36s    
    [3] => 3 R [email protected] pppoe 24:A4:3C:9F:83:10 10.17.0.252  8h1m36s    
    [4] => 4 R [email protected] pppoe 24:A4:3C:E6:DD:3E 10.17.0.250  8h1m36s    
    [5] => 5 R [email protected] pppoe 44:D9:E7:DA:32:95 10.16.0.246  8h1m36s   
) 

Jetzt eine Abhilfe, so dass keine Notwendigkeit, etwas in Ihrer Textdatei zu ändern, wird unten (vollständiger Code) gegeben: -

<?php 
$array = explode("\n", file_get_contents('myfile.txt')); 

echo "<pre/>";print_r($array); 
$new_array = array(); 
foreach($array as $key =>&$arr){ 

    if ($arr[3] !=='R'){ 

     $arr[3] ="_"; 
    } 
    $parts = preg_split('/\s+/', trim($arr)); 
    if($parts[1] == '_'){ 
     $parts[1] = ''; 
    } 
    $new_array[$key] = $parts; 
} 

echo "<pre/>";print_r($new_array); 

Hinweis: - es wird Ihnen geben Genaue gewünschte Ausgabe, was Sie uns gezeigt haben (Ich habe es an meinem lokalen Ende getestet)

Was hat Euch gebeten, in Kommentar für das unten wie tun: -

<?php 
$array = explode("\n", file_get_contents('myfile.txt')); 

echo "<pre/>";print_r($array); 
$new_array = array(); 
$indexed_array = Array('number','flag','name','service','mac','IP','uptime'); 

foreach($array as $key =>&$arr){ 

    if ($arr[3] !=='R'){ 

     $arr[3] ="_"; 
    } 
    $parts = preg_split('/\s+/', trim($arr)); 
    if($parts[1] == '_'){ 
     $parts[1] = ''; 
    } 
    $new_array[$key] = array_combine($indexed_array,$parts); 
} 

echo "<pre/>";print_r($new_array); 
+0

vielen Dank @Anant –

+0

gute Arbeit geleistet .. ich wirklich zu schätzen, was Sie haben erledigt. Nochmals vielen Dank @Anant –

1
<?php 
    $lines = array(); 
    $fopen = fopen('converted.txt', 'r'); 
    while (!feof($fopen)) { 
     $line=fgets($fopen); 
     $line=trim($line); 
     $lines[]=$line; 

    } 
    fclose($fopen); 
    $finalOutput = array(); 
    foreach ($lines as $string) 
    { 
     $string = preg_replace('!\s+!', ' ', $string); 
     $row = explode(" ", $string); 
     array_push($finalOutput,$row); 
    } 
    echo "<pre>"; 
    print_r($finalOutput); 
    echo "</pre>"; 
?> 

und Output ist

Array 
(
    [0] => Array 
     (
      [0] => 0 
      [1] => hbhenet 
      [2] => pppoe 
      [3] => D4:CA:6D:F1:5D:5A 
      [4] => 10.23.0.254 
      [5] => 8h1m36s 
     ) 

    [1] => Array 
     (
      [0] => 1 
      [1] => R 
      [2] => [email protected] 
      [3] => pppoe 
      [4] => 00:27:22:16:3B:F2 
      [5] => 10.17.0.253 
      [6] => 8h1m36s 
     ) 

    [2] => Array 
     (
      [0] => 2 
      [1] => R 
      [2] => [email protected] 
      [3] => pppoe 
      [4] => 68:72:51:3A:53:1B 
      [5] => 10.17.0.251 
      [6] => 8h1m36s 
     ) 

    [3] => Array 
     (
      [0] => 3 
      [1] => R 
      [2] => [email protected] 
      [3] => pppoe 
      [4] => 24:A4:3C:9F:83:10 
      [5] => 10.17.0.252 
      [6] => 8h1m36s 
     ) 

    [4] => Array 
     (
      [0] => 4 
      [1] => R 
      [2] => [email protected] 
      [3] => pppoe 
      [4] => 24:A4:3C:E6:DD:3E 
      [5] => 10.17.0.250 
      [6] => 8h1m36s 
     ) 

    [5] => Array 
     (
      [0] => 5 
      [1] => R 
      [2] => [email protected] 
      [3] => pppoe 
      [4] => 44:D9:E7:DA:32:95 
      [5] => 10.16.0.246 
      [6] => 8h1m36s 
     ) 

) 
Verwandte Themen