Auslesen einer txt-Datei - Sortierung umgekehrt?

Hattrix

Erfahrenes Mitglied
Hallo,

Code:
<?php


//CONNECT TO THE DATABASE
if(defined('pkFRONTEND'))
	return;
	
define('pkFRONTEND','public');
define('pkREQUESTEDFILE',basename(__FILE__));

include_once('include.php');
include("style.php");  

#####    CONFIGURATION        #####

$refresh  = 5 ;                // Page refresh time in seconds
$max      = 50 ;               // Max. saved messages
$remain   = 3800 ;             // Messages remaining time in seconds
$file     = "chat/data.txt" ;  // Message storing file

##### // CONFIGURATION END // #####

$user = $_POST['NICK'];
$f = file($file);
$users = array($user) ;
header ("Content-Type: text/html; charset=utf-8") ; 
$fp = fopen($file, "w") ;
if (!$fp) { die ('Konnte die Datei nicht &ouml;ffnen!') ; }
for ($i=0; isset($f[$i])||$i==0; $i++) 
{
	$e=explode('||', $f[$i]) ;
	if ($e[2]=="\r\n" && !in_array($e[0], $users) && ( time() - $e[1] < $refresh*2 ) ) $users[]=$e[0] ;
	if ($i==0) { fputs($fp, $user."||".time()."||\r\n") ;
		if ( isset($HTTP_POST_VARS['msg']) ) fputs ($fp, $user."||".time()."||".str_replace("||", "", str_replace("\n", "", stripslashes($HTTP_POST_VARS['msg'])))."\r\n") ;	}
	if ( ($e[0]!=$user && $e[2]=="\r\n") || ( $i<$max && ($e[1]+$remain)>time() && $e[2]!="\r\n") ) fputs($fp, $f[$i]) ;
}
fclose($fp) ;

if (isset($_GET['f1']))
{ 
	$f2 = file($file);
  if($_GET['clear']) $CLEAR = " onload=\"parent.document.m.reset();\"";

	for($i=0; isset($f2[$i]) && $i<$max; $i++) { 
  //for($i = 0; $i < count($f2); $i++) { 
		$e    =  explode("||", $f2[$i]) ;
    $text =  $PARSE->parse($e[2],0,1,1,1);
		if($e[2]!="\r\n") eval ("\$MSGS.= \"".getTemplate("chat/chat_iframe_entry")."\";");;
	}
  
  
}
eval ("\$site_design.= \"".getTemplate("site_style")."\";");
eval ("echo \$site= \"".getTemplate("chat/chat_iframe")."\";");
// onload='self.scroll(0,250);'

?>

Das ist mein COde, der die Textdatei von oben nach unten ausliest. Wie kann ich das aber machen, dass das was oben steht unten ausgegeben wird?
 
Ich habe schon lange nicht mehr mit Textdateien gearbeitet (sind mir zu unflexibel).
Aber ich meine dass file() den Inhalt in ein Array ablegt..... dem zufolge müsstest Du rsort() auf $f = file.... ansetzen.
 
Dann machst Du irgendwo etwas falsch.
Bei mir funktioniert es:
Datei.txt
Code:
1||foo
2||bar
3||bla
4||blub
Script.php
PHP:
<?php
$file = "Datei.txt";
$f = file($file);
$f = str_replace("\r\n","",$f);
rsort($f);

echo "<pre>";
var_dump($f);
echo "</pre>";
?>
Ergebnis:
Code:
array(4) {
  [0]=>
  string(7) "4||blub"
  [1]=>
  string(6) "3||bla"
  [2]=>
  string(6) "2||bar"
  [3]=>
  string(6) "1||foo"
}
 
Edit:
Bei mir gehtsnicht! :(

Sprich, bei mir sortiert er deren Werte ...

SGD-Daniel||1168601158||4

Soll aber nach der Zeit sortieren!
 
Zuletzt bearbeitet:
Hmm, entweder die Felder zerpflücken und in anderer Reihenfolge in ein neues Array schreiben und dann sortieren.
Oder halt gleich in der Textdatei die Zeit an die erste Stelle setzen.
Was anderes fällt mir sonst auch nicht ein.
 
Zurück