Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Kleines Problem mit Runden [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Kleines Problem mit Runden


 
smyl
02-10-2002, 01:23 
 
Ich habe in einer Textdatei "text.txt" 2 Zahlen, die folgendermaßen aufgebaut sind "Zahl1 | Zahl2"

Diese Zahlen sollen ausgelesen werden mit diesem Script und anschließend die erste durch die zweite geteilt werden und das Ergebnis auf bzw. abgerundet werden.

Hierzu hab ich dieses Script zusammengestellt. Zwar werden die beiden Zahlen richtig ausgelesen, aber wenn ich sie teilen will sagt er mir immer, dass man nicht durch 0 teilen kann.

Wo mach ich den Fehler ?

<?
$fp= fopen("test.txt", "r+");
while (!feof ($fp))
{
$zeile = fgets ($fp, filesize ("test.txt"));
list ($gesamt,$wertungen)
= explode (' | ',$zeile);

}
fclose ($fp);
$result =round($gesamt / $wertungen);
echo $result;
?>

 
Campus
02-10-2002, 01:29 
 
ich weiss nicht ob das was bringt:

$result =round((int)$gesamt / (int)$wertungen);

oder wenns kommazahler sind:

$result =round((float)$gesamt / (float)$wertungen);

 
TBT
02-10-2002, 09:30 
 
Die Meldung, daß er nicht durch 0 teilen kann, ist richtig. Was anderes hätte ich da nicht erwartet.

// Datei öffnen
$fp= fopen("test.txt", "r+");
// Datei Zeile für Zeile lesen
while (!feof ($fp))
{
$zeile = fgets ($fp, filesize ("test.txt"));
// für jede Zeile $gesamt und $wertungen ermitteln
list ($gesamt,$wertungen) = explode (' | ',$zeile);
}
// Datei schließen
fclose ($fp);
// Ausgabe der LOKALEN VARIABLEN AUS DER SCHLEIFE welche hier natürlich nicht mehr definiert sind,
// außerdem würde er hier, wenns gehen würde, nur die letzte Zeile ausspucken
$result =round($gesamt / $wertungen);
echo $result;

schieb mal die Berechnung und Ausgabe mit in die Schleife

 
smyl
02-10-2002, 11:46 
 
erstmal danke für die Antworten, hab ich richtig verstanden, dass der Quelltext jetzt so aussehen sollte ?

<?
// Datei öffnen
$fp= fopen("test.txt", "r+");
// Datei Zeile für Zeile lesen
while (!feof ($fp))
{
$zeile = fgets ($fp, filesize ("test.txt"));
// für jede Zeile $gesamt und $wertungen ermitteln
list ($gesamt,$wertungen) = explode (' | ',$zeile);
$result =round($gesamt / $wertungen);
echo $result;
}
// Datei schließen
fclose ($fp);
?>

Hier zeigt er nämlich immer noch den Error an

 
TBT
02-10-2002, 12:09 
 
explode macht die ein Array aus dem String

$array = explode(" | ",$zeile);
$result =round($array[0] / $array[1]);


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:53 Uhr.