2010-12-06 10 views
0

Ich versuche, ein PHP-Formular zu erstellen, das benutzerdefinierten JSON-Code ausgibt.Finden/ersetzen, nachdem PHP-Code angewendet wurde

Werfen Sie einen Blick: http://s194239704.onlinehome.us/bcembed/

Der JSON-Code ausgegeben, die die App ist falsch erstellt. Ich muss eine Suche durchführen und ersetzen, um einige der Kommas zu entfernen.

Die (Teil-) Quellcode sieht wie folgt aus:

{ 
<!-- ALBUM ART --><span <?php if($artdisplay!="block") echo "style=\"display:none;\""; ?>>"art": { "x": <?php echo $artx; ?>, "y": <?php echo $arty; ?>, "w": <?php if($artsize=="small") {echo "100";} elseif($artsize=="large") {echo "150";} ?>, "h": <?php if($artsize=="small") {echo "100";} elseif($artsize=="large") {echo "150";} ?>, "show": true },</span> 
<!-- MAINTEXT --><span <?php if($maintextdisplay!="block") echo "style=\"display:none;\""; ?>>"maintext": { "x": <?php echo $maintextx; ?>, "y": <?php echo $maintexty; ?>, "w": <?php echo $maintextw; ?>, "h": <?php echo $maintexth; ?>, "show": true, "styles": { "fontSize": "<?php echo $maintextfontsize; ?>", "textAlign": "<?php echo $maintextalign; ?>", <?php if($maintextbold=="bold") echo "\"fontWeight\": \"" . $maintextbold . "\","; ?> <?php if($maintextitalic=="italic") echo "\"fontStyle\": \"" . $maintextitalic . "\","; ?> }},</span> 
} 

Ich möchte die Suche auszuführen/ersetzen, nachdem die PHP angewendet wird. Ich habe versucht, die ganze Sache in eine JavaScript-Suche/ersetzen, weil ich dachte, die PHP würde vor dem Javascript-Code ausgeführt werden. Aber nichts ist passiert.

Können Sie mir sagen, ich bin über meinen Kopf? Halbherzig Kopieren und Einfügen kann mich nur bekommen so weit ...


Edit: Ich wusste nicht, über json_encode. Es scheint zu funktionieren, aber ich lief in einen anderen Haken. Ich möchte dies als Ausgang haben:

"currenttime": { 
    "x": 0, 
    "y": 0, 
    "w": 30, 
    "h": 30, 
    "show": true, 
    "styles": { 
    "fontSize": "13", 
    "fontWeight": "bold", 
    "fontStyle": "null", 
    "textAlign": "center" 
    } 
} 

Und das ist der Code, den ich zu verwenden ist versucht:

$jsonData['currenttime'] = array(
    'x' => $currenttimex, 
    'y' => $currenttimey, 
    'w' => $currenttimew, 
    'h' => $currenttimeh, 
    'show' => $currenttimedisplay=="block" ? true : false, 
    ['styles'] = array(
    'fontSize' => $currenttimefontsize, 
    'fontWeight' => $currenttimebold, 
    'fontStyle' => $currenttimeitalic, 
    'textAlign' => $currenttimealign 
) 
); 

Es ist wie ich einen Sub-Array für die Stile brauche ... was ist der richtige Weg, dies zu formatieren?

+2

Gibt es einen Grund youre manuell schreiben der json anstatt die 'json_encode' php Funktion zu benutzen? – prodigitalson

+0

Nur aus Neugier, warum nicht die Daten in einem Array speichern und einfach 'json_encode()' es am Ende? –

+0

Weil ich ein Noob bin. –

Antwort

4

Youre im Wesentlichen in Ordnung, aber Sie haben einige Syntaxfehler:

$jsonData['currenttime'] = array(
    'x' => $currenttimex, 
    'y' => $currenttimey, 
    'w' => $currenttimew, 
    'h' => $currenttimeh, 
    'show' => $currenttimedisplay =="block" ? true : false, 
    'styles' => array(
    'fontSize' => $currenttimefontsize, 
    'fontWeight' => $currenttimebold, 
    'fontStyle' => $currenttimeitalic, 
    'textAlign' => $currenttimealign 
) 
); 

Ich würde nicht manuell mit diesem ... verwenden json_encode statt:

$jsonData = array(); 

$jsonData['art'] = array(
    'x' => $artx, 
    'y' => $arty, 
    'w' => $artsize=="small" ? 100 : ($artsize == 'large' ? 150 : null), 
    'h' => $artsize=="small" ? 100 : ($artsize == 'large' ? 150 : null), 
    'show' => true 
); 

echo json_encode($jsonData); 
+0

+1 viel besser Ansatz. –

+0

Danke dafür. Diese Array-Struktur funktioniert, aber ich muss ein Sub-Array hinzufügen. Siehe meinen bearbeiteten Beitrag oben für Codebeispiele. –

+0

Sie sind auf dem richtigen Weg mit Ihrem Update ... Ihre Syntax ist gerade aus ... siehe mein Update. – prodigitalson

Verwandte Themen