Création d'un json simple depuis un .txt pour exploitation sur datatables

LDN
Eléphanteau du PHP | 10 Messages

07 juil. 2016, 17:08

Hello,

Je n'arrive pas à générer un json valide afin de l'exploiter dans datatable en serverSide
depuis un log .txt du tchat d'un serveur, auriez vous une idée ? :x
$tchatlog = fopen("http://51.254.70.161:28015/tchat.txt", "r");
while(!feof($tchatlog)) { 
	$message = fgets($tchatlog,4096);
	if (strlen($message) > 2) {
		$messages[] = htmlspecialchars($message);
	}
}
fclose($tchatlog);
$recordsFiltered = count($messages);
$recordsTotal = $recordsFiltered;
$response = array(
	"draw" => 1,
	"recordsTotal" => $recordsTotal,
	"recordsFiltered" => $recordsFiltered,
	"data" => $messages
);
echo json_encode($response);
( if (strlen($message) > 2) { me permet de ne plus avoir les lignes vides comme vous pouvez le voir sur le .txt )
Par avance, merci !

Eléphant du PHP | 131 Messages

21 juil. 2016, 15:22

Bonjour,

J'arrive peut être un peu tard, mais voici une solution à ton problème.

Code : Tout sélectionner

//récupère un fichier dans un array. Chaque element de l'array est une ligne //Les options permettent d'ignorer les retours chariots et les lignes vides $lines = file($url,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES); $reponse = array( "draw" => 1, "recordsTotal" => count($lines), "recordsFiltered" => count($lines), "data" => $lines ); echo json_encode($reponse);
Cordialement
Naroth

Avatar de l’utilisateur
Modérateur PHPfrance
Modérateur PHPfrance | 8670 Messages

22 juil. 2016, 09:04

salut,

il y a aussi la version objet qui peut t’intéresser :
<?php
//récupère un fichier dans un array. Chaque element de l'array est une ligne
//Les options permettent d'ignorer les retours chariots et les lignes vides
$lines = file($url,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

// Création d'un obket "standard" c'ets vide et on y ajoute ce que l'on veux
$response = new stdClass();
$response->draw = 1;
$response->recordsTotal= count($lines);
$response->recordsFiltered= count($lines);
$response->data= $line;
echo json_encode($response);
@+
Il en faut peu pour être heureux ......