нужна твоя помощь в этом ... Я пытаюсь создать код, который получит файл .txt и преобразует весь текстовый контент в json.
вот мой пример кода:
<?php
// make your required checks
$fp = 'SampleMessage01.txt';
// get the contents of file in array
$conents_arr = file($fp, FILE_IGNORE_NEW_LINES);
foreach($conents_arr as $key=>$value)
{
$conents_arr[$key] = rtrim($value, "\r");
}
$json_contents = json_encode($conents_arr, JSON_UNESCAPED_SLASHES);
echo $json_contents;
?>
Я уже получил результат, когда пытался повторить $json_contents
["Sample Material 1","tRAINING|ENDING","01/25/2018 9:37:00 AM","639176882315,639176882859","Y,Y","~"]
но когда я попытался повторить эхо, используя этот метод, $json_contents[0]
Я получил результат только для каждого символа.
Код
Результат
надеюсь, ты сможешь мне помочь с этим .. Спасибо






Это происходит потому, что $json_contents - это строка. Это может быть строка json, но это строка, поэтому здесь будут применяться строковые свойства, и, следовательно, когда вы echo $json_contents[0], он дает вам первый символ строки. Вы можете либо декодировать закодированную строку json в объект, как показано ниже:
$json = json_decode($json_contents);
echo $json[0];
или повторить его перед json_encode:
echo $conents_arr[0];
$json_contents = json_encode($conents_arr, JSON_UNESCAPED_SLASHES);
Как говорит PHP.net «Возвращает нить, содержащий представление JSON предоставленного значения».
Поскольку вы используете $ json_contents [0], это вернет первый символ строки json.
Ты можешь сделать это
$conents_arr[0]
Или преобразуйте строку json в массив PHP, используя
$json_array = json_decode($json_contents, true);
echo $json_array[0];
Функция json_encode () принимает массив в качестве входных данных и преобразует его в строку json.
echo $json_contents; просто распечатайте строку.
если вы хотите получить к нему доступ, вам нужно расшифровать строку JSON для массива.
//this convert array to json string
$json_contents = json_encode($conents_arr, JSON_UNESCAPED_SLASHES);
//this convert json string to an array.
$json_contents = json_decode($json_contents, true);
//now you can access it
echo $json_contents[0];
Почему вы повторяете
[0]? Чего вы пытаетесь достичь?