PHP und JSON: Unterschied zwischen den Versionen
Aus Wikizone
Kholja (Diskussion | Beiträge) |
|||
| Zeile 24: | Zeile 24: | ||
?> | ?> | ||
| + | |||
| + | == Korrekte Header Informationen für JSON == | ||
| + | Wenn man Header Infos mit zurückgibt kann das z.B. so aussehen | ||
| + | |||
| + | <pre> | ||
| + | $arrJSON = array('text'=>'Hallo Welt'); | ||
| + | // Wir geben der Anfrage ein JSON Objekt-Literal zurück | ||
| + | $ajax_return_data = json_encode($arrJSON); | ||
| + | header('Expires: Mon, 26 Jul 2000 03:00:00 GMT'); | ||
| + | header('Last-Modified: ' . gmdate( "D, d M Y H:i:s" ) . 'GMT'); | ||
| + | header('Cache-Control: no-cache, must-revalidate'); | ||
| + | header('Pragma: no-cache'); | ||
| + | header('Content-Length: '.strlen($ajax_return_data)); | ||
| + | header('Content-Type: application/json'); | ||
| + | echo $ajax_return_data; | ||
| + | exit; | ||
| + | </pre> | ||
| + | |||
| + | Der Content-Type: application/json ist nach Internet Recherche korrekt. Jedoch gibt es auch Aussagen über mögliche oder für manche Anwendungen sogar notwendige anders lautende Angaben: | ||
| + | |||
| + | Für JSONP (für Zugriff auf Server anderer Domains) | ||
| + | Content-Type: application/javascript | ||
| + | |||
| + | Funktionieren soll angeblich auch: | ||
| + | application/x-javascript | ||
| + | text/x-javascript | ||
| + | text/x-json | ||
Version vom 5. November 2012, 09:37 Uhr
Daten aus mySQL in eine JSON Datei schreiben
<?php
$sql=mysql_query("select * from Posts limit 20");
$response = array();
$posts = array();
$result=mysql_query($sql);
while($row=mysql_fetch_array($result))
{
$title=$row['title'];
$url=$row['url'];
$posts[] = array('title'=> $title, 'url'=> $url);
}
$response['posts'] = $posts;
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($response));
fclose($fp);
?>
Korrekte Header Informationen für JSON
Wenn man Header Infos mit zurückgibt kann das z.B. so aussehen
$arrJSON = array('text'=>'Hallo Welt');
// Wir geben der Anfrage ein JSON Objekt-Literal zurück
$ajax_return_data = json_encode($arrJSON);
header('Expires: Mon, 26 Jul 2000 03:00:00 GMT');
header('Last-Modified: ' . gmdate( "D, d M Y H:i:s" ) . 'GMT');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
header('Content-Length: '.strlen($ajax_return_data));
header('Content-Type: application/json');
echo $ajax_return_data;
exit;
Der Content-Type: application/json ist nach Internet Recherche korrekt. Jedoch gibt es auch Aussagen über mögliche oder für manche Anwendungen sogar notwendige anders lautende Angaben:
Für JSONP (für Zugriff auf Server anderer Domains)
Content-Type: application/javascript
Funktionieren soll angeblich auch:
application/x-javascript text/x-javascript text/x-json