[PHP] Textdatei "Parsen"

svend

Well-known member
ID: 67672
L
26 April 2006
330
21
Hallo,
habe da mal ne kleine frage, wie ist es möglich bei ausgelesender TXT datei die wie folgt gelesen wird
PHP:
<?php
$fp = fopen("user.txt","r");
if ($fp)
{
while(!feof($fp))
{
$text = fgets($fp);
echo"$text";
}
fclose($fp);
}
?>
einige teile zu parsen wie z.b. {, } oder ähnliches ?

in der text datei stehen usernamen die momentan im irc-server unterwegs sind.


danke und gruss svend
 
in der txt steht drin
Code:
Infield<br> Fl3r<br> _Gwenny_|off<br> Katerchen<br> pado|afk<br> charlie|afk<br> Micha|afk<br> unbeFlu<br> KuschelBaer<br> {FluUnbe[off]<br>}
die nicknamen der online user auf dem irc die ständig durch ein bot neu geschrieben werden... aber bei FluUnbe[off] z.b. sollen die klammern geparst werden...

weißt du wie ich das meine ?
wenn jemand zu lange idelt kommen die da irgendwie mit rein..
 
achja und die ausgabe soll auf der index.php von meiner hp stehen... wenn möglich über den code auch nach alphabet sortiert .. geht sowas ?
 
PHP:
<?php
  $contents = file_get_contents('user.txt');
  $contents = str_replace('[off]', '', $contents);
  echo $contents;
?>
Hoffe, das hilft...
 
PHP:
<?php
  $contents = file_get_contents('user.txt');
  $contents = str_replace('{', '', $contents); 
  $contents = str_replace('}', '', $contents); 
  echo $contents;
?>

cool danke :)

und wie kann man das nach zeichensatz am anfang sortieren lassen ?
 
Oh, das hatte ich ja vollkommen überlesen.

Das ist etwas umfangreicher.
PHP:
<?php
  $contents = file_get_contents('user.txt');
  $contents = str_replace('{', '', $contents); 
  $contents = str_replace('}', '', $contents); 

  // Inhalt anhand der Zeilenumbrüche aufsplitten
  $parts = preg_split('/<br\/?>/i', $contents);
  // Überflüssigen Whitespace an Zeilenende und -anfängen entfernen
  $parts = array_map('trim', $parts);
  // Array sortieren...
  sort($parts);
  // ...und wieder zu einem String zusammenfügen
  $contents = implode('<br/>', $parts);

  echo $contents;
?>
 
Code:
[LEFT][SIZE=1]Online User[/SIZE][/LEFT]
                                                            [SIZE=1]
Fl3r
FluUnbe[off]
Infield
Katerchen
KuschelBaer
Micha|afk
_Gwenny_|off
charlie|afk
pado|afk
unbeFlu[/SIZE]

irgendwie noch nicht ganz *glaub* :ugly:
 
PHP:
$contents = explode('<br> ',$contents);
sort($contents);
foreach($contents AS $user) {
   echo $user.'<br />';
}
 
Kann man eigentlich jetzt auch noch ausrechnen lassen wieviele zeilen bzw user dort online sind und das auch da via php ausgeben lassen ??
 
Wenn du ein count() um das Array herum schreibst, sollte es die Anzahl der Elemente (in deinem Fall also die Anzahl der User) ausgeben.
PHP:
$usercount=count($arrayDerUser);
echo $usercount;
 
Nein, sollte eigentlich nicht -1 gerechnet werden. Gibt er dir eine falsche Anzahl aus?
 
Soooo vielen dank an alle :)

code sieht nun wie folgt aus ;)
PHP:
<?php
                 $contents = file_get_contents('user.txt');
  $contents = str_replace('{', '', $contents); 
  $contents = str_replace('}', '', $contents); 

  // Inhalt anhand der Zeilenumbrüche aufsplitten
  $parts = preg_split('/<br\/?>/i', $contents);
  // Überflüssigen Whitespace an Zeilenende und -anfängen entfernen
  $parts = array_map('trim', $parts);
  // Array sortieren...
  natcasesort($parts);
  // ...und wieder zu einem String zusammenfügen
  $contents = implode('<br/>
  ', $parts);
    $usercount=count($parts); 
                echo $usercount-1; ?>
                User sind Online <br>
             <?php
  $contents = file_get_contents('user.txt');
  $contents = str_replace('{', '', $contents); 
  $contents = str_replace('}', '', $contents); 

  // Inhalt anhand der Zeilenumbrüche aufsplitten
  $parts = preg_split('/<br\/?>/i', $contents);
  // Überflüssigen Whitespace an Zeilenende und -anfängen entfernen
  $parts = array_map('trim', $parts);
  // Array sortieren...
  natcasesort($parts);
  // ...und wieder zu einem String zusammenfügen
  $contents = implode('<br/>
  ', $parts);

  echo $contents;
?>
zu sehen auf
https://helpserv.de links unterm menü
gibt sicher leichtere wege aber es funzelt :D