Правильный JSON

259
22 ноября 2017, 00:45

Есть файл с данными из которого нужно выбрать определенные данные, сформировать JSON и отправить по запросу на клиент. Пока это выглядит так

ФАЙЛ:

time <wbr> NaN <wbr> someData <wbr> 112 <wbr> 3 <wbr> 0 
   <wbr> -1 <wbr> someData  <wbr> someData  <wbr> 0 <wbr> 0 
   <wbr> someData  <wbr> productId_1 <wbr> productId_2

Это пример одной строки txt файла, таких строк много.

$handle = 'file.txt';
$f = fopen($handle, "r");
$full_file  = [];
$one_string = [];
$page_of_product = [];
$position_of_product = [];
while(!feof($f)) { 
    $arr[] = fgets($f); // добавляю в массив по 1 строке из файла
}
for ($i=0; $i < count($arr); $i++) { 
    $arr2[] = explode("<wbr>", $arr[$i]);// формирую массив из каждой строки (<wbr> - это просто разделитель столбцов)
}
for ($i=0; $i < count($arr2); $i++) { 
    $page_of_product[]     = [$i => $arr2[$i][4] ];
    $position_of_product[] = [$i => $arr2[$i][3] ];
}//так я получаю массивы с нужными данными (нужна ячейка 3 и 4)

А далее я не знаю как из этих массив сформировать корректный JSON, если писать просто $page_of_product = json_encode($page_of_product); то JSON получается не корректный...как правильно сделать? Заранее спасибо!

Answer 1

Для меня правильный, тот который я смогу распарсить на клиенте)

Давайте, сделаем массив объектов, типа [{"page":" 3 ","position":" 112 "}]

$handle = 'php://stdin';
$res = [];
foreach (file($handle, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) as $line) { 
    $arr2 = explode("<wbr>", $line);
    $res[] = ['page'=> $arr2[4], 'position'=> $arr2[3]];
}
echo json_encode($res);
READ ALSO
Проблема с RedBeanPHP

Проблема с RedBeanPHP

выдает ошибку

225
WordPress поднять VIP объявления

WordPress поднять VIP объявления

Есть сайт объявлений на WordPress (+ тема ClassiPress)На сайте есть как обычные, так и VIP объявления

226