Here the example: https://graph.facebook.com/19292868552
How is it possible? The source of the page is just as the page appears! There's no code of any kind. If you try to change the last 2 number in the url you can get other examples.
How do they print this JSON with carriage return after every element of the array without any sort of <br/>
?
$vettore = array(
"uno" => 1,
"due" => 2,
"tre" => 3
);
header("Content-Type: text/javascript; charset=UTF-8");
echo json_encode($vettore, JS开发者_开发百科ON_PRETTY_PRINT);
If you look at the reply headers, there's this line:
Content-Type: text/javascript; charset=UTF-8
By this the browser knows that the page is not HTML and doesn't try to format it as such.
Tell the browser that it's plain text, then just pretty print it.
header('Content-type: text/plain');
Although they actually use text/javascript
, as shown by the page properties.
You could do it like this, it doesn't seem the best way to achieve neatly formatted Json but it does work.
$json_stuff = array(
"url" => "http://example.com",
"name" => "my name",
"description" => "some description",
"other" => "some text"
);
foreach ($json_stuff as $key => $val) {
$json_string .= "\"${key}\" : \"${val}\",\n";
}
header('Content-Type: application/json');
die("{\n".rtrim($json_string, ",\n")."\n}");
Above would output below with line breaks and without backslashs in urls.
{
"url" : "http://example.com",
"name" : "my name",
"description" : "some description",
"other" : "some text"
}
精彩评论