Text in Array: Binärcode als Bild

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Text in Array: Binärcode als Bild

    Hi Leute,

    Ich habe hier ein anscheinend einfaches problem, aber trotzdem komme ich zu keiner Lösung.
    Mein Programm:
    Ein Binärcode soll eingegeben werden und als String verarbeitet werden.
    Dieser soll dann in einen Array umgewandelt werden. Für jeden Array Wert soll ein bestimmtes bild ausgegeben werden.

    Quellcode

    1. <?php
    2. $code = $_POST["code"];
    3. echo "<img src='anfangsstrich.jpg' alt='' border='0' width='' height=''>";
    4. for ($i = 0; $i < strlen($code); $i++)
    5. {
    6. if($code[$i] == 1) {
    7. echo "<img src='eins.jpg' alt='' border='0' width='' height=''>";
    8. if($code[($i+1)] == 1) {
    9. echo "<img src='strich1.jpg' alt='' border='0' width='' height=''>";
    10. } elseif ($code[($i+1)] == 0){
    11. echo "<img src='strich0.jpg' alt='' border='0' width='' height=''>";
    12. }
    13. }
    14. elseif($code[$i] == 0) {
    15. echo "<img src='null.jpg' alt='' border='0' width='' height=''>";
    16. if($code[($i+1)] == 1) {
    17. echo "<img src='strich1.jpg' alt='' border='0' width='' height=''>";
    18. } elseif ($code[($i+1)] == 0) {
    19. echo "<img src='strich0.jpg' alt='' border='0' width='' height=''>";
    20. }};
    21. }
    Alles anzeigen


    Der Array wurde schon übermittelt und funktioniert auch einwandtfrei. Jedoch soll zwischen den Bildern ein Strichbild gesetzt werden. Wenn jedoch das letzte Bild erreicht ist, soll er keinen Strich mehr einfügen. Wie erreiche ich das? Damit ihr besser Bescheid wisst, was ich meine, hier ein Bild von einem Ergebnis: (String in dem Falle ist 011011)
    [Blockierte Grafik: http://img143.imageshack.us/img143/5014/problemm.jpg]

    Gruß AtroCty
  • error_reporting E_ALL an, dann weißt du es ;)
    mit $code[($i+1)] rennst du ja eins zu viel.

    Quellcode

    1. if($code[$i] == 1) {
    2. echo "<img src='eins.jpg' alt='' border='0' width='' height=''>";
    3. }
    4. elseif($code[$i] == 0) {
    5. echo "<img src='null.jpg' alt='' border='0' width='' height=''>";
    6. }
    7. if(isset($code[($i+1)]))
    8. if($code[($i+1)] == 1) {
    9. echo "<img src='strich1.jpg' alt='' border='0' width='' height=''>";
    10. } elseif ($code[($i+1)] == 0){
    11. echo "<img src='strich0.jpg' alt='' border='0' width='' height=''>";
    12. }
    Alles anzeigen
  • Dein geediter Code funktioniert nicht ;)
    Denn wenn man den string in einen Array umwandelt, wird der Wert null nicht als Konstante zurückgegeben. Somit gilt mit der Funktion isset() bei Eingabe von 0 = false, und er hört sofort wieder auf ;)
    Für die, die diesen Text googlen, hier nochmal der korrekte Lösungsansatz:

    Quellcode

    1. for ($i = 0; $i < strlen($code); $i++)
    2. {
    3. if($code[$i] == 1) {
    4. echo "<img src='eins.jpg' alt='' border='0' width='' height=''>";
    5. } elseif($code[$i] == 0) {
    6. echo "<img src='null.jpg' alt='' border='0' width='' height=''>";
    7. }
    8. if($i < strlen($code)-1)
    9. if($code[($i+1)] == 1) {
    10. echo "<img src='strich1.jpg' alt='' border='0' width='' height=''>";
    11. } elseif ($code[($i+1)] == 0){
    12. echo "<img src='strich0.jpg' alt='' border='0' width='' height=''>";
    13. }
    14. }
    Alles anzeigen


    MfG