Это потому, что file_get_contents()
возвращает содержимое файла , поэтому здесь вы не запускаете generatejson.php
, а вместо этого читаете код в переменную.Таким образом, вы фактически устанавливаете значение $json
в строку:
$data = array(
'article_1' => array(
'label' => 'myfirstvalue',
'oT' => 'myfirsttext',
),
'article_2' => array(
'label' => 'myfirstvalue',
'oT' => 'myfirsttext',
),
'article_3' => array(
'label' => 'myfirstvalue',
'oT' => 'myfirsttext',
),
'article_4' => array(
'label' => 'myfirstvalue',
'oT' => 'myfirsttext',
),
);
echo json_encode($data);
(что, конечно, не является допустимым JSON).
То, что я считаю, вы пытаетесь сделатьЗапустите код и присвойте вывод $json
, в этом случае вам понадобится require()
:
generatejson.php
:
<?php
$data = array(
'article_1' => array(
'label' => 'myfirstvalue',
'oT' => 'myfirsttext',
),
'article_2' => array(
'label' => 'myfirstvalue',
'oT' => 'myfirsttext',
),
'article_3' => array(
'label' => 'myfirstvalue',
'oT' => 'myfirsttext',
),
'article_4' => array(
'label' => 'myfirstvalue',
'oT' => 'myfirsttext',
),
);
return json_encode($data);
test.php
:
<?php
$json = require("generatejson.php");
$data = json_decode($json, true);
print_r($data);
Когда я запускаю это, я получаю вывод:
Array
(
[article_1] => Array
(
[label] => myfirstvalue
[oT] => myfirsttext
)
[article_2] => Array
(
[label] => myfirstvalue
[oT] => myfirsttext
)
[article_3] => Array
(
[label] => myfirstvalue
[oT] => myfirsttext
)
[article_4] => Array
(
[label] => myfirstvalue
[oT] => myfirsttext
)
)
Что я думаю, что вы ищете?