Falsche Ausgabe

Alles, was PHP betrifft, kann hier besprochen werden.

Falsche Ausgabe

Postby deljo » 07. February 2005 08:57

Hallo,

ich habe mit folgendem Code Probleme bei der Ausgabe:
Code: Select all
  $quellstring="44 days 16 hours 10 minutes 25 seconds";
  $quellstring=str_replace("days", "°", $quellstring);
  $quellstring=str_replace("hours", "°", $quellstring);
  $quellstring=str_replace("minutes", "°", $quellstring);
  $quellstring=str_replace("seconds", "°", $quellstring);
  echo($quellstring);
 
  $uplast_days = trim(strtok($quellstring, "°"));
  $uplast_hour = trim(strtok($quellstring, "°"));
  $uplast_min  = trim(strtok($quellstring, "°"));
  $uplast_sec  = trim(strtok($quellstring, "°"));
 
echo("<br>$uplast_days<br>$uplast_hour<br>$uplast_min<br>$uplast_sec");
 
 
  $uplast  = $uplast_days;
  $uplast *= 24;
  $uplast += $uplast_hour;
  $uplast *= 60;
  $uplast += $uplast_min;
  $uplast *= 60;
  $uplast += $uplast_sec;
 
 
  echo("<br><br>soll 3859825 ist $uplast");

Normalerweise müsste die Ausgabe so aussehen:

44 ° 16 ° 10 ° 25 °
44
16
10
25

soll 3859825 ist 3859825

Ist aber nicht, denn sie sieht so aus:

44 ° 16 ° 10 ° 25 °
44
44
44
44

soll 3859825 ist 3962684

Habe Xampp für Linux installiert und läuft sonst problemlos.
Liegt es an der php.ini, wo ich eine Einstellung setzen muss?
Meine PHP-Version ist 4.3.4

Hier die falsche Ausgabe auf meinem Server.
Hier die richtige Ausgabe (unterhalb der Rauten) auf einem anderen Server.

Kann jemand helfen??

MfG
User avatar
deljo
 
Posts: 20
Joined: 27. November 2003 09:03
Operating System: openSUSE 11.4 / Xampp 1.4.2

Postby Wiedmann » 07. February 2005 12:57

Mal abgesehen was dir schon in d.c.l.p.m gesagt wurde, könnte man das auch so machen:
Code: Select all
<?php
$quellstring = "44 days 16 hours 10 minutes 25 seconds";
echo $quellstring;

preg_match_all("|\d{1,}|", $quellstring, $uplast);
echo "<br><br>{$uplast[0][0]}<br>{$uplast[0][1]}<br>{$uplast[0][2]}<br>{$uplast[0][3]}";

$uplast[1] = $uplast[0][0];
$uplast[1] *= 24;
$uplast[1] += $uplast[0][1];
$uplast[1] *= 60;
$uplast[1] += $uplast[0][2];
$uplast[1] *= 60;
$uplast[1] += $uplast[0][3];
echo "<br><br>soll 3859825 ist {$uplast[1]}";
?>
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby jakimo72 » 08. February 2005 18:37

Code: Select all
$quellstring="44 days 16 hours 10 minutes 25 seconds";
  $quellstring=str_replace("days", "°", $quellstring);
  $quellstring=str_replace("hours", "°", $quellstring);
  $quellstring=str_replace("minutes", "°", $quellstring);
  $quellstring=str_replace("seconds", "°", $quellstring);
  echo($quellstring);
 
  $uplast_days = trim(strtok($quellstring, "°"));
  $uplast_hour = trim(strtok("°"));
  $uplast_min  = trim(strtok("°"));
  $uplast_sec  = trim(strtok("°"));
 
echo("<br>$uplast_days<br>$uplast_hour<br>$uplast_min<br>$uplast_sec");
 
 
  $uplast  = $uplast_days;
  $uplast *= 24;
  $uplast += $uplast_hour;
  $uplast *= 60;
  $uplast += $uplast_min;
  $uplast *= 60;
  $uplast += $uplast_sec;
 
 
  echo("<br><br>soll 3859825 ist $uplast");


Ich mag allerdings die funktion strtok() nicht, da sie nicht zustandslos
ist, und im engeren Sinn damit keine Funktion ist.
Lieber benutze ich explode() oder preg_split().
User avatar
jakimo72
 
Posts: 151
Joined: 07. February 2005 13:25
Location: Hamburg-Barmbek


Return to PHP

Who is online

Users browsing this forum: No registered users and 4 guests