Rechnen, Anfänger frage grösser, kleiner oder gleich.

Ich habs kapiert, glaub ich :)

ASCII sagt das 01001000, H zu bedeuten hat. (kurz gesagt )

Muss mir das morgen nochmals durchlessen.

Dann versuche ich mal:

PHP:
$a = "0x40";

echo $a;
// mueste dann ein @ geben, hoffe ich
:)
 
Aber ein A ist und bleibt ein A. Wozu ein kodierter standart? ein pc arbeitet doch mit 0 und 1. A ist Binär 01000001.
Ich tu mir schwer das zu werstehen.
Um noch einmal direkt auf das einzugehen:

A ist nur deswegen 01000001, weil das eben durch ASCII so festgelegt ist
und der Großteil der Computer das heute so verwenden.
Theoretisch kann jeder selber Buchstaben zu irgendwelchen Binärzahlen zuteilen;
nur würde es da ein Riesenchaos geben, weil jedes Programm etc. die Zahlen anders versteht.
 
Dann versuche ich mal:

PHP:
$a = "0x40";

echo $a;
// mueste dann ein @ geben, hoffe ich
:)

Nein, tut es nicht. In $a steht die Zeichenkette "0x40" drin. Also 00110000, 01111000, 00110100 und 00110000. Jedes Zeichen der Zeichenkette ist ein Byte (ein Zeichen). Das "@" selbst ist ein anderer Binärwert nämlich 01000000. Wie kommt man also von solch einer Zeichenkette auf das Zeichen?

Als erstes muss man den Hexwert in einen Zahlwert umwandeln, dann kann man diese Zahl in das ihm aus der ASCII-Tabelle zugehörige Zeichen umwandeln:

PHP:
<?php
$a = "0x40";

echo "a ist jetzt $a<br/>";

// Wandelt den Hex-Wert, der als Zeichenkette vorliegt, in eine Ganzzahl
$ganzzahl = intval($a, 16);

echo "ganzzahl ist jetzt $ganzzahl<br/>";

// Wandelt die Ganzzahl in ds zugehörige ASCII-Zeichen:
$zeichen = chr($ganzzahl);

echo "zeichen ist jetzt $zeichen<br/>";

// Aber bei dem Vergleich wird aus der Zeichenkette implizit eine Ganzzahl:
if($a == 64)
{
  echo "wahr, $a == 64<br/>";
}
else
{
  echo "falsch<br/>";
}
 
Zuletzt bearbeitet:
Theoretisch kann jeder selber Buchstaben zu irgendwelchen Binärzahlen zuteilen;
nur würde es da ein Riesenchaos geben, weil jedes Programm etc. die Zahlen anders versteht.
Deswegen ist es immer wichtig, bei jedem String, das ein Programm verarbeitet, zu wissen, welches Encoding benutzt wird.
Ein Byte != ein Zeichen im Allgemeinen. Bei ASCII schon, bei UTF-8 nur bei einer Teilmenge aller Zeichen.
Nicht nur kann die Annahme eines anderen Encodings zu Darstellungsfehlern, Textverarbeitungsfehlern führen, sondern auch zu immensen Sicherheitsproblem. Letzteres war und ist immer noch bei der MySQL-Erweiterung von PHP ein Problem, siehe http://security.stackexchange.com/a/8029/27234 und http://stackoverflow.com/a/12118602/603003.
 
Ich habe weitere Scripte ausprobiert. Ich verstehe ASCII. Aber an den php grundlagen haperts.


Also ich möcht eine schnee grafik anzeigen aber nur wenn es schneit!

Habe den wert "es regnet" 0=nein und 1=ja,regen
Und den wert Taupunkt , der wert muss unter 0 seid und es regnet muss aus 1 sein dann schneit es, dann soll ein gif angezeigt werden.

Also hab unter berüksichtigung von ASCII mal nen code ausprobiert. aber ist doch komplizierter als gedacht.
Suche immer noch nach einem pesseren php "Editor" Als Dreamweaver 4 von 1996. ev. Crimson

Mein versuchs code
PHP:
<?php

$ja= doubleval($SimpleXML_loaded_File->wswin->esregnet);
if (0 < $ja) {
    $weiter = nein;
} else if(0 == $ja) {
    $weiter = nein;
} else {
    $akt= doubleval($SimpleXML_loaded_File->wswin->tau);
}



if (0 < $akt) {
    echo '<img src="gif/snow2.gif"  width="40" height="40" />';
} else if(0 == $akt) {
    echo '<img src="gif/snow2.gif"  width="40" height="40" />';
} else {
    echo '<img src="gif/snow1.gif"  width="40" height="40" />';
}
?>
 
Du kannst Notepad++, NetBeans oder PHPStorm nutzen. Hier kannst du auch mal schauen: http://softwarerecs.stackexchange.com/search?tab=votes&q=php ide

Ich verstehe ASCII. Aber an den php grundlagen haperts.
Was hapert? Was ist der Fehler?

"$weiter = nein" ist kein guter Code, denn was ist 'nein' bei dir? Eine Konstante? PHP interpretiert das als String, wirft aber trotzdem eine Warnung, die du auch beachten solltest!
Was heißt "$weiter" überhaupt? Nutze bitte aussagekräftigere Variablennamen.

Zusätzlich solltest du Bedingungen zusammenfassen, z. B. die ersten zwei: "if ($ja >= 0)". Deine Art Yoda Conditions verwirren zumindest mich sowieso :D
 
Gib deinen Variablen bessere/eindeutige Namen.

Beispiel:
PHP:
   $Rain_True = doubleval($SimpleXML_loaded_File->wswin->esregnet);


   if ($Rain_True > 0 || $Rain_True == 0)
   {
       $Continue = 'Nein';
   }
       else
   {
       $Wether_Now = doubleval($SimpleXML_loaded_File->wswin->tau);
   }

   if ($Wether_Now > 0 || $Wether_Now == 0)
   {
       echo '<img src=\"gif/snow2.gif\" width=\"40\" height=\"40\" />';
   }
       else
   {
       echo '<img src=\"gif/snow1.gif\" width=\"40\" height=\"40\" />';
   }

Wobei mein Codeschnipsel so keinen Sinn macht (deiner auch nicht). Aber es zeigt in die richtige Richtung.

$SimpleXML_loaded_File->wswin->esregnet
Was steht hier drin? 0, 1 und 2?

$SimpleXML_loaded_File->wswin->tau
Was steht hier drin?
 
$SimpleXML_loaded_File->wswin->esregnet
Was steht hier drin? 0, 1 und 2?

$SimpleXML_loaded_File->wswin->tau
Was steht hier drin?
$SimpleXML_loaded_File->wswin->esregnet gibt 0 oder 1 ; bei 0 nix anzeigen - bei 1 bild anzeigen.
$SimpleXML_loaded_File->wswin->tau gibt -30 bis 30 (temperaturen zb. 8.3) ; ist temperathur 0 oder unter 0 (-2.4) bild schnee anzeigen, über 0 bild regen anzeigen.

Wobei mein Codeschnipsel so keinen Sinn macht (deiner auch nicht). Aber es zeigt in die richtige Richtung.

Danke für den beisbiel code. so komme ich glaube zum richtigen weg...

Zusätzlich solltest du Bedingungen zusammenfassen, z. B. die ersten zwei: "if ($ja >= 0)"

Ja genau, versuch mich gerade am "verschachteln". Eine "gleichung" okey. versuche noch zu verstehen dass beim esregnet 0 nichts "passiert" nichts angezeig wird.
 
Zuletzt bearbeitet von einem Moderator:
So, habs dank Eurer hilffe hinbekommen.

der fertige code.
PHP:
<!-- XML Verbinden START -->
<?php
$SimpleXML_loaded_File = simplexml_load_file("wswin.xml");
?>
<!-- XML Verbinden ENDE -->
<?php

   $Rain_True = doubleval($SimpleXML_loaded_File->wswin->esregnet);
   $Wether_Now = doubleval($SimpleXML_loaded_File->wswin->tau);
   if ($Rain_True > 0 || $Rain_True == 0)
   {
        if ($Wether_Now > 0 || $Wether_Now == 0)
   {
       echo '<img src="gif/regen.gif"  width="40" height="40" />';
   }
       else
   {
       echo '<img src="gif/schnee.gif"  width="40" height="40" />';
   }
   }
       else
   {
      $Continue = 'Nein';
   }
?>

THX ;):):):):):)
 
UND wieder einmal zufrühgefreut.

wenn kein bild kommen soll kommt bild regen

so, jetzt binn ich sauer (auf mich):mad: versuchs morgen nochmals.
 
Zurück