kostenloser Webspace werbefrei: lima-city


Problem mir str_replace und Zahlen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    masterakio1995

    Kostenloser Webspace von masterakio1995

    masterakio1995 hat kostenlosen Webspace.

    Hallo,
    Ich habe ein Problem unzwar:
    Wenn ich den code so ausführe:
    $dMap = str_replace("0", "<img src='images/Tilemap/Wasser/Wasser_01.png'>", $dMap);


    kommt über echo kein bild sondern einmal dieses Zeichen dafür das das Bild nicht gefunden wurde und direkt dahinter
    1.png'>


    Wenn ich allerdings den code so ausführe:

    $dMap = str_replace("0", "<img src='images/Tilemap/Wasser/Wasser.png'>", $dMap);

    und die Grafik Datei auch dementsprechen bennene wird das Bild angezeigt.

    Wieso genau ist das so und wie kann ich dies umgehen/beheben?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hallo

    läuft der Aufruf in einer Schleife oder wird sondt irgendwie doppelt ausgeführt,

    normalerweise sollte das schon funktionieren

    masterakio1995 schrieb:
    $dMap = str_replace("0", "<img src='images/Tilemap/Wasser/Wasser_01.png'>", $dMap);




    aber wenn Du es doppelt ausführst,
    dann wird halt die 0 bei Wasser_01.png wieder durch den code ersetzt

    also es sieht für mich so aus, als würde es mind. 2x ausgeführt, daher der Fehler
    denn normal (bei 1x Ausführung) sollte es eigentlich gehen
  4. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Interessant ist noch, was vor dem Aufruf in
    $dMap
    steht.
    Schließlich lautet der Funktionsaufruf von str_replace so:
    mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
    Da der 3. Parameter den Text enthält, in dem ersetzt werden soll, ist der Inhalt von $dMap vor dem Aufruf wichtig.
  5. Autor dieses Themas

    masterakio1995

    Kostenloser Webspace von masterakio1995

    masterakio1995 hat kostenlosen Webspace.

    Der Inhalt der variable $dMap ist:
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    :D

    sparsuche schrieb:
    hallo

    läuft der Aufruf in einer Schleife oder wird sondt irgendwie doppelt ausgeführt,

    normalerweise sollte das schon funktionieren

    masterakio1995 schrieb:
    $dMap = str_replace("0", "<img src='images/Tilemap/Wasser/Wasser_01.png'>", $dMap);




    aber wenn Du es doppelt ausführst,
    dann wird halt die 0 bei Wasser_01.png wieder durch den code ersetzt

    also es sieht für mich so aus, als würde es mind. 2x ausgeführt, daher der Fehler
    denn normal (bei 1x Ausführung) sollte es eigentlich gehen

    Du hast recht aber wie könnte ich die _01 den ersetzten so das es auch zahlend vortlaufen ist?

    Beitrag zuletzt geändert: 29.3.2012 21:12:17 von masterakio1995
  6. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Ich habe das jetzt so getestet:
    $dMap = '0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>';
    
    $dMap = str_replace('0', '<img src="images/Tilemap/Wasser/Wasser_01.png">', $dMap);
    
    echo($dMap);
    Das funktioniert genau so wie es soll.

    sparsuche schrieb:
    [...] läuft der Aufruf in einer Schleife oder wird sondt irgendwie doppelt ausgeführt [...]

    [...] aber wenn Du es doppelt ausführst,
    dann wird halt die 0 bei Wasser_01.png wieder durch den code ersetzt

    also es sieht für mich so aus, als würde es mind. 2x ausgeführt, daher der Fehler
    denn normal (bei 1x Ausführung) sollte es eigentlich gehen
    Das muss der Grund sein, da str_replace mit 100%iger Sicherheit so funktioniert wie es soll. Schau also, ob du die Zeile nicht irgendwie 2x hintereinander aufrufst (Schleife?).
  7. Autor dieses Themas

    masterakio1995

    Kostenloser Webspace von masterakio1995

    masterakio1995 hat kostenlosen Webspace.

    hackyourlife schrieb:
    Ich habe das jetzt so getestet:
    $dMap = '0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>';
    
    $dMap = str_replace('0', '<img src="images/Tilemap/Wasser/Wasser_01.png">', $dMap);
    
    echo($dMap);
    Das funktioniert genau so wie es soll.

    sparsuche schrieb:
    [...] läuft der Aufruf in einer Schleife oder wird sondt irgendwie doppelt ausgeführt [...]

    [...] aber wenn Du es doppelt ausführst,
    dann wird halt die 0 bei Wasser_01.png wieder durch den code ersetzt

    also es sieht für mich so aus, als würde es mind. 2x ausgeführt, daher der Fehler
    denn normal (bei 1x Ausführung) sollte es eigentlich gehen
    Das muss der Grund sein, da str_replace mit 100%iger Sicherheit so funktioniert wie es soll. Schau also, ob du die Zeile nicht irgendwie 2x hintereinander aufrufst (Schleife?).


    Schau mal in den beitrag über dir ;)
  8. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    masterakio1995 schrieb:
    Du hast recht aber wie könnte ich die _01 den ersetzten so das es auch zahlend vortlaufen ist?
    Dazu brauche ich ein Beispiel: was gibst du rein, was soll rauskommen.
    Du wirst jedenfalls nicht um Reguläre Ausdrücke herumkommen...
  9. Autor dieses Themas

    masterakio1995

    Kostenloser Webspace von masterakio1995

    masterakio1995 hat kostenlosen Webspace.

    Ich habe den DB einträgen jeweils zahlen von bisher 0-13 zugeordnet. Diese zahlen werden dan durch den jeweiligen bilder pfad ersetzt der lautet z.b. /pfad/Wasser_01.pnd oder /pfad/Grass_01.png
  10. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Falls du es schaffst die Zahlen im richtigen Format (01 - 14) aus deiner Datenbank auszugeben:
    $subject = '00|01|02|03|04|05<br />06';
    
    $pattern = '/([0-9]+)/';
    $replace = '<img src="images/Tilemap/Wasser/Wasser_$0.png" />';
    
    $result = preg_replace($pattern, $replace, $subject);
    echo($result);
    In
    $subject
    müssen deine Zahlen stehen.
  11. Autor dieses Themas

    masterakio1995

    Kostenloser Webspace von masterakio1995

    masterakio1995 hat kostenlosen Webspace.

    ich werde es morgen mal versuchen es so zu machen heute ist mir das schon zu spät. Danke erstmal ich werde dan morgen posten ob es geklappt hat oder nicht.
  12. masterakio1995 schrieb:
    Der Inhalt der variable $dMap ist:
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|<br/>
    ah yo!¿ das ist also die variable!¿ und was soll als 'sinn' (sprich: SINN)) dahinter stecken¿¿
    du sagst ja selbst:
    :D

    und genau DAS passiert auch: gar nix!

    es wäre konstruktiver, wenn du uns verrätest, wo die ominösen daten ($dMap) herkommen, was sie heißen wollen/sollen, was sie verursachen wollen/sollen und dann könne wir '_xx' durch was du willst ersetzen, so dass auch danach es noch funzt ;)

    ... sonst sieht man nicht durch ... :((
  13. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    hemiolos schrieb:
    es wäre konstruktiver, wenn du uns verrätest, wo die ominösen daten ($dMap) herkommen, was sie heißen wollen/sollen, was sie verursachen wollen/sollen und dann könne wir '_xx' durch was du willst ersetzen, so dass auch danach es noch funzt ;)


    Das wurde hier beschrieben:
    masterakio1995 schrieb:
    Ich habe den DB einträgen jeweils zahlen von bisher 0-13 zugeordnet. Diese zahlen werden dan durch den jeweiligen bilder pfad ersetzt der lautet z.b. /pfad/Wasser_01.pnd oder /pfad/Grass_01.png


    Die Lösung ist demnach noch viel einfacher als angenommen: er kann er sofort die img-Tags erstellen ohne den Umweg über die Datenbank sowie die $dMap-Variable und das ersetzen der Zahlen.

    Das könnte so aussehen:
    for($i = 0; $i < (22*24); $i++) {
    	printf('<img src="images/Tilemap/Wasser/Wasser_%02d.png" />', ($i % 14) + 1);
    	if((($i + 1) % 24) == 0)
    		echo("<br />\n");
    }
    Dabei ist 22 die Zeilenzahl, 24 die Spaltenzahl und 14 die Anzahl der Bilder.

    Unterschiede:
    1) es muss kein $dMap erstellt werden, nur um dort wieder Daten zu ersetzen
    2) es wird keine Datenbank benötigt
  14. Autor dieses Themas

    masterakio1995

    Kostenloser Webspace von masterakio1995

    masterakio1995 hat kostenlosen Webspace.

    Also es wird eine Map erstellt und die Zahlen stehen für die einzelnen Tiles. Diese Zahlen sollen demnach durch das Bild des Tiles ersetzt werden. Und da die Maps in einer Datenbank gespeichert werden ist der zugriff auf die Datenbank nötig.
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!