Forum Doku Wiki Blog

Forumsarchiv 2005, Juni
PHP kennt bcsub() nicht?

archivierte Beiträge lesen

  1. (PHP) PHP kennt bcsub() nicht? von Nico, 16. 06. 2005, 21:14

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 16. 06. 2005, 21:14 Uhr von Nico veröffentlicht.

Hallo!

Ich hab auf meinen WebServer ein Script hochgeladen. Zu sagen wäre vielleicht nich, dass ich das nicht selber geschrieben habe, sondern aus dem Internet downgeloadet. Als ich das auf dem Server ausführen wollte kam die Fehlermeldung "
Fatal error: Call to undefined function: bcsub() ..."
In dem Script ist ja auch die Funktion mit eingebaut. Aber die ist doch absolut legitim, oder?
Beim googeln bin ich auch schon auf massenweise von den gleichen Problemen gestoßen. Die hatten aber alle keine Lösung. Hängt das mit der PHP-Konfiguration des Servers ab? Und wenn ja, wie kann ich das dann umgehen. In dem Script ist eine Genauigkeit von 2 angegeben. Ich weiss nicht, inwiefern sich das dann auf das ganze Script auswirkt, wenn ich einfach schreibe $x=$y-$z. Hätte da jemand einen Vorschlag?

Nico

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 16. 06. 2005, 21:21 Uhr von AllesMeins veröffentlicht.

Moin,

> Hätte da jemand einen Vorschlag?

Ja, wie wärs mit ein paar Zeilen beispielcode?

Grüsse

Marc

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 16. 06. 2005, 21:32 Uhr von Nico veröffentlicht.

Ich weiß zwar nicht , ob das weiter hilft, aber wenn du denkst:

$userlogin=$usrsettings[$usrid."_login"];
$userstamp=$usrsettings[$usrid."_timestamp"];
$localstamp=date("H.i");
$checkstamp=bcsub($localstamp,$userstamp,2);

Nico

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 16. 06. 2005, 21:56 Uhr von AllesMeins veröffentlicht.

Hiho,

du hast ja bereits eine (wahrscheinlich richtige) Antwort von Tobias bekommen. Wäre dem nicht so hätte ich die paar Zeilen Code genutzt um das selbe mal bei mir auszuprobieren und so zu sehen ob es an deinem Server liegt, oder doch am Script...
Deshalb am besten immer ein bisschen Code mitliefern...

Grüsse

Marc

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 16. 06. 2005, 21:58 Uhr von Nico veröffentlicht.

Ja aber was mach ich denn da jetzt?

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 16. 06. 2005, 22:18 Uhr von FrankieB veröffentlicht.

Hallo Nico,

> Ja aber was mach ich denn da jetzt?

z.B. hättest Du die Möglichkeit, dein Programm so umzuschreiben, daß es ohne bcsub() läuft. bcsub() ist ja schliesslich keine Funktion, die man unbedingt braucht. Wenn Du formatierte Zahlen brauchst tut es auch number_format(), sprintf() oder so.

Grüsse
Frankie

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 16. 06. 2005, 22:23 Uhr von Nico veröffentlicht.

Also würde dann

$checkstamp=bcsub($localstamp,$userstamp,2);

das gleiche sein wie

$checkstamp=$localstamp-$userstamp
$checkstamp=number_format($checkstamp, 2)

, oder? Danke schonmal (auch an alle anderen)

Nico

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 16. 06. 2005, 22:28 Uhr von AllesMeins veröffentlicht.

Hiho,

ob das das gleiche ist hab ich jetzt nicht geprüft. Aber es wird zumindest ähnlich. Ich wollte nur einwerfen das du es am besten als eigene Funktiion lösen solltest


function bcsub($wert1, $wert2, $stellen){
    return (number_format(/$wert1 - $wert2), 2));
}

(oder entsprechend anderen Code, falls dein Beispiel da unten nicht vollkommen äquivalent ist)
Die Funktion dann irgendwo untergebracht so das sie möglichst in allen anderen Scripten includet ist und tadaa...

Marc

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 16. 06. 2005, 22:31 Uhr von FrankieB veröffentlicht.

Hallo AllesMeins,

gute Idee, aber

>
> function bcsub($wert1, $wert2, $stellen){
>     return (number_format(/$wert1 - $wert2), 2));
                            ^^^^
> }
>


welche bedeutung hat der "/" in deiner Funktion?

Grüsse
Frankie

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 17. 06. 2005, 15:01 Uhr von AllesMeins veröffentlicht.

> >
> > function bcsub($wert1, $wert2, $stellen){
> >     return (number_format(/$wert1 - $wert2), 2));
>                             ^^^^
> > }
> >

>
> welche bedeutung hat der "/" in deiner Funktion?

Es war spät und ich hab die "Klammer auf" Taste knapp verfehlt :)

Marc

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 17. 06. 2005, 08:47 Uhr von Nico veröffentlicht.

Da wäre ja blos das Problem, dass die Stellenanzahl optional ist. Kann ich das denn in einer selbstdefinierten Funktion angeben?

Nico

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 17. 06. 2005, 11:38 Uhr von FrankieB veröffentlicht.

Hallo Nico,

> Da wäre ja blos das Problem, dass die Stellenanzahl optional ist. Kann ich das denn in einer selbstdefinierten Funktion angeben?

ja.

Grüsse
Frankie

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 17. 06. 2005, 13:26 Uhr von Andreas Korthaus veröffentlicht.

Hallo!

>
> function bcsub($wert1, $wert2, $stellen){
>     return (number_format(/$wert1 - $wert2), 2));
> }
>

> (oder entsprechend anderen Code, falls dein Beispiel da unten nicht vollkommen äquivalent ist)
> Die Funktion dann irgendwo untergebracht so das sie möglichst in allen anderen Scripten includet ist und tadaa...

Man kann das Verhalten von BC-Funktionen nicht so ohne weiteres nachbilden. BC abreitet nicht mit (den Limitierungen von) Floats, sondern mit Strings. Wenn das in diesem Fall geht war die Verwendung einer BC-Funktion gar nicht notwendig.


Grüße
Andreas
--
SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 16. 06. 2005, 22:29 Uhr von FrankieB veröffentlicht.

Hallo Nico,

> $checkstamp=$localstamp-$userstamp
; fehlt
> $checkstamp=number_format($checkstamp, 2)
; fehlt
> , oder? Danke schonmal (auch an alle anderen)

ich denke schon, daß das zum gewünschten Ergebnis führt, hast es denn schon ausprobiert?

Grüsse
Frankie

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 17. 06. 2005, 13:19 Uhr von Andreas Korthaus veröffentlicht.

Hallo!

> > Ja aber was mach ich denn da jetzt?
>
> z.B. hättest Du die Möglichkeit, dein Programm so umzuschreiben, daß es ohne bcsub() läuft. bcsub() ist ja schliesslich keine Funktion, die man unbedingt braucht. Wenn Du formatierte Zahlen brauchst tut es auch number_format(), sprintf() oder so.

bc-Funktionen können mit einer sehr viel höheren Genauigkeit rechnen, entsprechend kann man Rundungsfehler von normalen Rundungen vermeiden. Das aber nur wenn man es bewußt und vor allem konsequent einsetzt und weiß was man da macht. Mit Formatierungen hat das ganze erstmal wenig zu tun.

Grüße
Andreas

--
SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 17. 06. 2005, 14:01 Uhr von FrankieB veröffentlicht.

Hallo Andreas,

> bc-Funktionen können mit einer sehr viel höheren Genauigkeit rechnen, entsprechend kann man Rundungsfehler von normalen Rundungen vermeiden. Das aber nur wenn man es bewußt und vor allem konsequent einsetzt und weiß was man da macht. Mit Formatierungen hat das ganze erstmal wenig zu tun.

Danke für die Aufklärung!

Grüsse
Frankie

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 16. 06. 2005, 22:21 Uhr von AllesMeins veröffentlicht.

Hiho,

hast du nachgeschaut ob es das wirklich ist? Leg mal ne Datei mit nur
<?php
phpinfo();
?>
an und schau was bei dem Punkt "bcmath support" steht. Sollte das nichT "enabled" stehen oder gibt es den Punkt gar nicht hängt es davon ab ob du bei irgend einem Hoster bist und bei welchem. Falls du selber Zugriff auf den Server hast: Perfekt - dann musst du PHP einfach nur mit der entsprechenden Option neu kompilieren/installieren.
Falls du das nicht hast kannst du nur auf den guten Draht zu deinem Hoster hoffen und ihn fragen ob es möglich ist das zu aktivieren (bei den grossen Massenhostern wirst du wohl kaum ne Chance haben - aber wenn du bei nem kleinen bist...)
Alternativ kannst du dir noch einen neuen Hoster suchen oder ein neues Script...

Und die letzte Möglichkeit: Wenn es nur bcsub ist - die Funktion scheint mir nicht so arg kompliziert zu sein. Mit ein bisschen geschick dürftest du so ne Funktion auch mit PHP Bordmitteln nachbauen können und dann das Script entsprechend umbasteln, das deine Funktion mitdrinne ist...

Marc

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 16. 06. 2005, 22:28 Uhr von Nico veröffentlicht.

siehe http://forum.de.selfhtml.org/?t=109781&m=686924

PHP kennt bcsub() nicht?

Der folgende Beitrag wurde am 16. 06. 2005, 21:30 Uhr von Tobias Kloth veröffentlicht.

Hallo Nico,

> Fatal error: Call to undefined function: bcsub() ..."
<zitat quelle="http://de3.php.net/ref.bc">
These functions are only available if PHP was configured with --enable-bcmath.
</zitat>
was sagt phpinfo(); zu dieser Option?

Grüße aus Nürnberg
Tobias

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4