2017-01-17 4 views
0

Я пытаюсь получить это изображение для отображения из api-вызова в php, в тег img в html.Display Api Image

До сих пор это то, что я пытался,

<div class="col-md-3 col-lg-3 " align="center"><img alt="User Pic" <?php echo 'src="'. $data['response']['avatar'] . '"'; ?> 

но это только отображение пользователей ПОС, это потому, что апи не внутри PHP? полный код ниже.

<section class="section blog-detail"> 
    <div class="container"> 
     <div class="row"> 
     <div class="col-md-5 toppad pull-right col-md-offset-3 "> 
     <br> 
     </div> 
     <div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xs-offset-0 col-sm-offset-0 col-md-offset-3 col-lg-offset-3 toppad" > 


      <div class="panel panel-info"> 
      <div class="panel-heading"> 
       <h3 class="panel-title">Profile</h3> 
      </div> 
      <div class="panel-body"> 
       <div class="row"> 

       <div class="col-md-3 col-lg-3 " align="center"> <img alt="User Pic" <?php echo 'src="'. $data['response']['avatar'] . '"'; ?> class="img-circle img-responsive"> </div> 
       <div class=" col-md-9 col-lg-9 "> 
        <table class="table table-user-information"> 
        <tbody> 
<?php 
/* Check if button was clicked */ 
if (isset($_POST['someName'])) { 

    /* If id is empty or not a number, then don't proceed fetching data */ 
    if (empty($_POST['id']) || !is_numeric($_POST['id'])) { 
     echo 'Invalid id'; 

    } else { 

     /* Fetch data */ 
     $data = file_get_contents('https://api.truckersmp.com/v2/player/' . $id = trim($_POST["id"])); 

     /* Decode json */ 
     $data = json_decode($data, true); 

     /* Display id and name */ 
     if (isset($data['response'])) { 
      /* You should add some checks to check if id and name actually exists and are not empty */ 
      echo ' 
       <tr><td>ID:</td><td><strong /> ' . $data['response']['id'] . '</td></tr> 
       <tr><td>Name:</td><td><strong /> ' . $data['response']['name'] . '</td></tr> 
       <tr><td>Join Date:</td><td><strong /> ' . $data['response']['joinDate'] . '</td></tr> 
       <tr><td>Steam 64:</td><td><strong /> ' . $data['response']['steamID64'] . '</td></tr> 
       <img src="'. $data['response']['avatar'] . '"></td></tr> 
       <tr><td>Group:</td><td><strong />' . $data['response']['groupName'].'</td></tr>'; 

     } 
    } 
} 
?> 
        </tbody> 
        </table> 

        <a href="#" class="btn btn-primary">My Sales Performance</a> 
        <a href="#" class="btn btn-primary">Team Sales Performance</a> 
       </div> 
       </div> 
      </div> 
       <div class="panel-footer"> 
         <a data-original-title="Broadcast Message" data-toggle="tooltip" type="button" class="btn btn-sm btn-primary"><i class="glyphicon glyphicon-envelope"></i></a> 
         <span class="pull-right"> 
          <a data-original-title="Remove this user" data-toggle="tooltip" type="button" class="btn btn-sm btn-danger"><i class="glyphicon glyphicon-remove"></i></a> 
         </span> 
        </div> 

      </div> 
     </div> 
     </div> 
    </div> 

        </tbody> 
        </table> 

       </div> 
       </div> 
      </div> 

      </div> 
     </div> 
     </div> 
    </div> 

ответ

1

Я собираюсь предположить, что вы новичок в PHP, потому что нарушаете одно фундаментальное правило. Вы смешиваете логический код PHP с кодом HTML. Если вы новичок, и вы не можете избежать написания PHP-логики в том же файле, что и HTML-код, выполните следующие действия: Сначала напишите свой PHP-код перед любым HTML-кодом и оставьте HTML-код для конца файла.

Таким образом, естественно, что этот $data['response']['avatar'] пуст, потому что массив $ data извлекается из json_decode, но «ниже».

Итак, добавьте свой код PHP выше первой, и пусть ваш HTML будет жить ниже. И помните, вы сделаете это только потому, что вы новичок. Позже вы узнаете о структуре, как Laravel, Symfony, Yii, CodeIgniter и т. Д. ... что больше похоже на реальная сделка для PHP.