PHP: %d wird in String interpretiert?

  • Hey,
    speichere folgenden String in einem mehrdimensionalen Array: "%d %d".


    Wenn ich mir den Arraywert ausgeben will, kommt, statt "%d %d": "35 1908041273".
    Das ist extrem uncool und ich bin relativ ahnungslos, wonach ich googlen soll.


    Soll dann quasi wie folgt benutzt werden:

    PHP
    sscanf($command, static::$commands[$command]['sscanf'], $params);

    Das Array wird wie folgt aufgebaut:



    PHP
    static::$commands[$command] = [
    				'callback'=>$callback,
    				'sscanf'=>$sscanf,
    				'middlewares'=>$middlwares
    			];


    Die middlewares und das callback funktionieren hervorragend, also ich bin auch an der richtigen Position etc. - er interpretiert das nur, hab ich den Eindruck. 8|

  • Es wäre gut zu wissen...so ein paar Randwerte..was steht denn in $sscanf...in $params..in $command...

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • in $sscanf steht "%d %d", der ersetzt die aber eben durch die Zahlenwerte.
    Wenn ich bei $sscanf nur "d d" übergebe, gibt er mir auch nur "d d" auf - also meine ich interpretiert der das echt. :(


    $command ist halt der Command, der abgeschickt wird - ist letztlich nur die SA:MP PHP API (sprich z.B. "/makeadmin").


    #edit: Fehler entdeckt. Lag an mir. Danke für die flotte Antwort @Kaliber! :)

    Einmal editiert, zuletzt von TutNichts ()

  • ...ja da stimmt doch was nicht...


    So müsste das doch iwi aussehen...



    $id=0;
    $rang=0;
    sscanf($params, static::$commands[$command]['sscanf'], $id, $rang);


    Denn...in $command steht ja noch /makeleader...etc aber das ist doch für sscanf trivial, es geht da nur um den Parameter split...


    Also z.B. 0 3...der wird auf id und rang in dem Fall übertragen...

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S