Das JSON-Datenformat kann den Datenabruf und die Referenzierung zwischen verschiedenen Sites erleichtern. Natürlich kann unser DEDECMS auch JSON für den Aufruf anderer Sites generieren einfach und hauptsächlich verwendet include/json.class.php.
Dreamweaver selbst verfügt über ein eigenes JSON-Tag, die aufrufende Methode:
{dede:json url='http://yoursite/json.php' cache=300} [field:id/]-[field:title/]<br/> {/dede:json}
Dieses Tag-Aufrufbeispiel wurde uns im Dreamweaver-Handbuch zur Verfügung gestellt, URL lautet Eine Remote-JSON-Schnittstellenadresse. Im json.php-Code dieser Schnittstellendatei muss die endgültige Rückgabe darin bestehen, die Daten über die Systemfunktion json_encode($feeds) zu übergeben und sie nach der JSON-Codierung über echo oder print() auszudrucken. Diese beiden Punkte sind erforderlich. Dann können wir die Daten über $.ajax() oder $.getjson() im Vordergrund abrufen. Das Dreamweaver-System stellt uns eine JSON-Klasse in der Datei include/json.class.php zur Verfügung. Das heißt, wenn wir die JSON-Codierung der PHP-Datei konvertieren, haben wir zwei Methoden:
1. Verwenden Sie direkt die Systemfunktion json_encode(), die uns vom PHP-System bereitgestellt wird. Sie ist einfach und problemlos. Da das PHP-System sie uns zur Verfügung stellt, können wir die von nicht bereitgestellte Funktion verwenden das DreamWeaver-System.
2. Verwenden Sie die vom DreamWeaver-System bereitgestellte Funktion encode(), bevor Sie json.class.php einführen, das heißt:
require_once(DEDEINC.'/json.class.php'); $json = new Services_JSON(SERVICES_JSON_SUPPRESS_ERRORS); echo $json->encode($reval);
Die Variable $reval erhalten wir aus der Datenbank oder von anderen Stellen. Es handelt sich normalerweise um ein zweidimensionales Array, zum Beispiel:
Array ( [0] => Array ( [id] => 95 [title] => 原图设计) [1] => Array ( [id] => 113 [title] => ssssssssssss) [2] => Array ( [id] => 111 [title] => hjhj ) [3] => Array ( [id] => 110 [title] => ssssssssssss) )
Nach dem Echo sieht der angezeigte Inhalt wie folgt aus.
[ {"id":"95","title":"\u539f\u521b"}, {"id":"113","title":"ssssssssssss"}, {"id":"111","title":"hjhj"}, {"id":"110","title":"ssssssssssss"} ]
Dies ist der Inhalt, der nach „encoding()“ oder der Verwendung von „json_encode()“ angezeigt wird. Das heißt, mehrere in eckige Klammern eingeschlossene JSON-Daten werden an die angeforderte $.ajax() oder $.getjson() zurückgegeben, die die Daten verarbeitet und die gewünschten Ergebnisse anzeigt.
Da Sie nun das Prinzip kennen, ist der nächste Schritt die detaillierte Implementierungsmethode wie folgt:
Erstellen Sie zunächst eine neue PHP-Datei und nennen Sie sie json.php ( Sie können auch einen neuen Ordner erstellen und ihn „API“ nennen, und PHP wird dann „index.php“ genannt. Beim Aufruf müssen Sie ihn also nur wie http://Ihr Domänenname/API aufrufen, der als aufgerufener Ordner verwendet wird API-Schnittstelle. Der Code lautet wie folgt:
<?php $cfg_NotPrintHead = false; header("Content-Type: text/html; charset=utf-8"); include_once (dirname(__FILE__)."/../include/common.inc.php"); error_reporting(E_ALL || ~E_NOTICE); require_once(DEDEINC.'/json.class.php'); $reval = array(); $dsql->SetQuery("SELECT id,title FROM `dede_archives` ORDER BY id DESC LIMIT 0,10"); $dsql->Execute('me'); while ($row = $dsql->GetArray('me')) { $row['title'] = gb2utf8($row['title']); $reval[] = $row; } $json = new Services_JSON(SERVICES_JSON_SUPPRESS_ERRORS); echo $json->encode($reval); ?>
Der Code hier wurde von GBK in UTF8 konvertiert, sodass er mit der GBK-Version von DEDECMS kompatibel ist
Aufrufmethode:
{dede:json url='http://域名/json.php' cache=300} [field:id/]-[field:title/]<br/> {/dede:json}
Fügen Sie den Aufrufcode einfach dort ein, wo Sie ihn benötigen
cache=300 Cache-Zeit, 0 bedeutet kein Caching
Empfohlen: dedecms-Nutzungsanleitung
Das obige ist der detaillierte Inhalt vonSo schreiben Sie eine API-Schnittstelle in dedecms. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!