Заставить file_get_contents возвращать только то, что я хочу

#php #file-get-contents

#php #file-get-contents

Вопрос:

У меня есть этот код. И я хочу, чтобы в арай датте на каждой позиции было посещение. но я получаю результаты в виде строк. вот пример:

«string(7652) «{«id»: «34»,»nume»:»STUDENT»,»bilet»: null,»log»:»2014-06-16 11:41:28 n2014-06-16 11:41:30 n2014-06-16 11 :41:41 n2014-06-16 11:41:41 n2014-06-16 11:41:43 n2014-06-16 11:42:03 n2014-06-16 11:42:05 n2014-06-16 11:42:06 n2014-06-16 11:42:06 n2014-06-16 11:42:06 n2014-06-16 11:42:09 n2014-06-16 11:42:11 n2014-06-16 11 :42: «

Мне нужно только log…so я могу сделать таблицу heml из этих журналов. Идеи?

 public $datte = array();
public function aduDpServer(){
    $data = array ('foo' => 'bar', 'id' => 34); 
    $data = http_build_query($data); 
    $context_options = array ( 
        /*'http' => array ( 
            'method' => 'POST', 
            'header'=> "Content-type: application/x-www-form-urlencodedrn" 
            . "Content-Length: " . strlen($data) . "rn", 
            'content' => $data 
        ) */
        'http'=> array(
            'method'=>'POST',
            'header'=>"Content-type: application/x-www-form-urlencodedrn",
            'content'=>$data
        )
    ); 
    $context = stream_context_create($context_options);
    $this->datte = file_get_contents('http://www.jajaja/x/updt.php', false, $context); 

    //var_dump($fp);

}

public function afiseaza(){
    //print_r($this->datte);
    echo"<table border=1 cellpading=0 cellspacing=0 >";
    echo"<th>Accesari</th>";
    $this->datte = is_array($this->datte) ? $this->datte: array($this->datte); //fortare vector
    foreach ($this->datte as $d) {
        echo"<tr>";
        echo"<td>".$d."</td>";echo"<br>";
        echo"</tr>";

    }

}
  

Комментарии:

1. Вам нужно перебрать $this->datte['log'];

2. как? потому что я получаю всю эту строку непосредственно в моем массиве данных.

3. Это строка json, которую вам нужно декодировать в массив.

Ответ №1:

Ваша строка — это JSON, поэтому вы можете использовать json_decode для преобразования ваших данных в массив php.

 $this->datte = json_decode(file_get_contents('http://www.jajaja/x/updt.php', false, $context), true); 
  

Комментарии:

1. не работает… когда я пытаюсь var_dump ($this->datte), я получаю NULL

2. Проверьте, являются ли ваши данные допустимым JSON. Смотрите пример # 3 : php.net/manual/en/function.json-decode.php

3. я использовал explode .. я вижу, что задаю вопросы, которых на самом деле не знаю, и получаю -респ. Очень приятно, что люди, которые понимают это, приходят сюда и вместо того, чтобы поддержать нас .. дают -. Спасибо stackoverflow!