brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 26-09-2005, 17:39
Maranello-550
 Member
Links : Onlinestatus : Maranello-550 ist offline
Registriert seit: Aug 2002
Ort: :tronhoW
Beiträge: 498
Maranello-550 ist zur Zeit noch ein unbeschriebenes Blatt
Arrow Numerischer String: Interger oder Double?

Hallo Leute!

Ich habe eine Datenbank, in der ich sowohl strings als auch integer und doubles in einer Text-Spalte abspeichern muss. Beim Auslesen habe ich nur das PRoblem, dass ich zwar mit is_numeric() zwischen strings und numerischen strings unterscheiden kann, bei diesen aber nicht zwischen integer und double. Ich müsste aber die Typen wieder entsprechend umwandeln.
PHP-Code:
$str '0.123';

echo (int) 
$str// --> 0 und nicht 0.123 
Wie kann ich die Typen korrekt umwandeln?

__________________
arrays sind klasse
Mit Zitat antworten
  #2 (permalink)  
Alt 26-09-2005, 17:42
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wicked..

is_int() => intval()
is_float() => floatval()
etc.?
Mit Zitat antworten
  #3 (permalink)  
Alt 26-09-2005, 17:48
Maranello-550
 Member
Links : Onlinestatus : Maranello-550 ist offline
Registriert seit: Aug 2002
Ort: :tronhoW
Beiträge: 498
Maranello-550 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

*vordenkopfschlag*

EDIT:
Nein, so simpel ist es doch nicht!
Die Variable liegt als Typ string vor, weswegen man nicht mit is_int() oder is_float() arbeiten kann.

Nebenfrage:
$str = (int) $str;
$str = intval($str);
Welche Umwandlungsmethodik ist vorzuziehen?
__________________
arrays sind klasse

Geändert von Maranello-550 (26-09-2005 um 17:52 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 26-09-2005, 17:58
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

man kann ja schummeln
PHP-Code:
is_float($foo+0
ich nutze immer intval(), aber ich glaube, es macht keinen unterschied.
Mit Zitat antworten
  #5 (permalink)  
Alt 26-09-2005, 18:14
Maranello-550
 Member
Links : Onlinestatus : Maranello-550 ist offline
Registriert seit: Aug 2002
Ort: :tronhoW
Beiträge: 498
Maranello-550 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke
__________________
arrays sind klasse
Mit Zitat antworten
  #6 (permalink)  
Alt 26-09-2005, 18:17
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das ist natürlich ein workaround, sowas mag ich selbst nicht, aber wenn jemandem was besseres einfällt...

evtl. vorher auf is_numeric() prüfen, damit das "+0" sinn ergibt.
Mit Zitat antworten
  #7 (permalink)  
Alt 26-09-2005, 23:35
inder
 Newbie
Links : Onlinestatus : inder ist offline
Registriert seit: Sep 2005
Beiträge: 10
inder ist zur Zeit noch ein unbeschriebenes Blatt
inder eine Nachricht über ICQ schicken
Standard

Also ich habe für solche Dinge eigene Funktionen

z.B.:
PHP-Code:
function is_uint($input) {
    
$input '' $input;
    if(
strlen($input) == 0)
        return 
false;
    for(
$i 0$i strlen($input); $i++) {
        if((
ord($input[$i]) < 48) || (ord($input[$i]) > 57))
            return 
false;
    }
    return 
true;

Mit Zitat antworten
  #8 (permalink)  
Alt 26-09-2005, 23:55
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wieder das rad neu erfinden?

was du mit is_uint() testest, kann ich absolut genau so mit
PHP-Code:
is_int($x) && $x >= 
testen.

aber lies dir die frage noch mal durch - es ging um etwas anderes.
Mit Zitat antworten
  #9 (permalink)  
Alt 27-09-2005, 07:20
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.283
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
function is_strInt($data){
    
$data strtolower($data);
    if(
is_numeric($data) && !strpos($data,".") && !strpos($data"e") && !strpos($data,"x"))
    {
           
//ist ein Integer
           
return 'int';
    }
    elseif(
is_numeric($data) && strpos($data,".") && !strpos($data,'e') && !strpos($data,'x'))
    {
            
//is ein float
            
return 'float';
    }
    else
    {
            return 
false;
    }


Vllt könnte das helfen....

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #10 (permalink)  
Alt 27-09-2005, 07:46
inder
 Newbie
Links : Onlinestatus : inder ist offline
Registriert seit: Sep 2005
Beiträge: 10
inder ist zur Zeit noch ein unbeschriebenes Blatt
inder eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von penizillin
wieder das rad neu erfinden?

was du mit is_uint() testest, kann ich absolut genau so mit
PHP-Code:
is_int($x) && $x >= 
testen.

aber lies dir die frage noch mal durch - es ging um etwas anderes.
Das Rad vielleicht neu erfunden, vielleicht auch nicht. Ich brauch nicht zwei Teilausdrücke um zu prüfen ob es UNSIGNED int ist.

Und auch wenn es um etwas anderes gegangen ist. Die Funktion umbenannt, nach dem Minuszeichen gefragt und dem Punkt und schon ist es diesem Thread zugeschnitten. Ich wollte ja nur ein Beispiel zeigen.

Aber in diesem Forum wird man sogar angefickt wenn man jemandem einen Rat geben möchte. Falls ich im Profil meinem Account nicht löschen kann, so tut das bitte für mich. Ist ja echt nicht auszuhalten, wie sich hier einige "höhere Tiere" verhalten.
Mit Zitat antworten
  #11 (permalink)  
Alt 27-09-2005, 09:57
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

bleib mal auf dem boden und achte auf deine ausdrucksweise, bitte.

ich habe lediglich bemerkt, dass deine antwort nicht zu der frage passt. und deinen code habe ich gern kritisiert, weil es redundanter unfug ist. du erfindest ja auch nicht myEcho($str) und myPlus($a, $b) neu, oder?

dasss du nur einen ausdruck zum prüfen brauchst ist ein sehr schwaches argument, wenn man bedenkt, dass dein code eine ganze runde mehr prozessorzeit und speicher braucht.
Mit Zitat antworten
  #12 (permalink)  
Alt 27-09-2005, 15:59
inder
 Newbie
Links : Onlinestatus : inder ist offline
Registriert seit: Sep 2005
Beiträge: 10
inder ist zur Zeit noch ein unbeschriebenes Blatt
inder eine Nachricht über ICQ schicken
Standard

PHP-Code:
$value '10';
if(
is_int($value) && $value >= 0)
    echo(
'Unsigned int!');
else
    echo(
'Kein unsigned int!'); 
Die Ausgabe dürfte für dich klar sein. Und für meine Fälle ist soetwas nicht zu gebrauchen. Zum Beispiel wenn ich durch Benutzereingabe (get oder post) etwas nach einer ID löschen möchte oder so...
Mit Zitat antworten
  #13 (permalink)  
Alt 27-09-2005, 16:10
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

deswegen haben wir mit Maranello-550 auch von der typenkonvertierung geredet. deine funktion is_uint() macht es auch nicht, sie prüft nur, ob ein string aus zahlen besteht.
Mit Zitat antworten
  #14 (permalink)  
Alt 27-09-2005, 16:17
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Vorschlag zur Güte:
PHP-Code:
function is_uint($input) {
  return (string)
$input == (string)max(0, (int)$input);

__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:08 Uhr.