【发布时间】:2019-02-13 12:50:52
【问题描述】:
我正忙着和朋友们一起制作《使命召唤黑色行动 4》。
现在我可以工作了,但我想合并代码,因为我为每个用户名重复了整个 cURL 信息。有人可以帮我清理我的代码吗:)
我在不断重复的代码之间放置了。
现在我有 6 个用户名,这意味着每次我的 cUrl 请求和一行都会重复。
我相信它可以比我更容易地工作。
<?php
if(isset($_GET['user']) && $_GET['user'] != '') {
$url = 'https://cod-api.tracker.gg/v1/standard/bo4/profile/2/'.$_GET['user'];
}else{
$url = 'https://cod-api.tracker.gg/v1/standard/bo4/profile/2/gurdt';
}
<!--- REPEAT FOR EVERY USERNAME !--->
$userGurdt = 'https://cod-api.tracker.gg/v1/standard/bo4/profile/2/gurdt';
<!--- END REPEAT FOR EVERY USERNAME !--->
$userRay = 'https://cod-api.tracker.gg/v1/standard/bo4/profile/2/the_green_ray';
$userRamon = 'https://cod-api.tracker.gg/v1/standard/bo4/profile/2/hilhorst95';
$userMark = 'https://cod-api.tracker.gg/v1/standard/bo4/profile/2/r6dutchmennl';
$userLeon = 'https://cod-api.tracker.gg/v1/standard/bo4/profile/2/theaxeman777';
$userDan = 'https://cod-api.tracker.gg/v1/standard/bo4/profile/2/fscdan';
<!--- REPEAT FOR EVERY USERNAME !--->
// Gurdt
$chGurdt = curl_init($userGurdt);
curl_setopt($chGurdt, CURLOPT_USERPWD, 'TRN-Api-Key: XXXXXXX-XXXX-XXXXX-XXXX-XXXXXXXXXXXX');
curl_setopt($chGurdt, CURLOPT_RETURNTRANSFER, true);
$responseGurdt = curl_exec($chGurdt);
if(curl_errno($chGurdt)){
//If an error occured, throw an Exception.
throw new Exception(curl_error($chGurdt));
}
$outputGurdt = json_decode($responseGurdt);
$usernameGurdt = $outputGurdt->data->metadata->platformUserHandle;
$levelGurdt = $outputGurdt->data->stats[0]->value;
$levelImgGurdt = $outputGurdt->data->stats[0]->metadata->iconUrl;
$killsGurdt = $outputGurdt->data->stats[2]->value;
$deathsGurdt = $outputGurdt->data->stats[3]->value;
$kdGurdt = $outputGurdt->data->stats[1]->value;
<!--- END REPEAT FOR EVERY USERNAME !--->
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// The_Green_Ray
$chRay = curl_init($userRay);
curl_setopt($chRay, CURLOPT_USERPWD, 'TRN-Api-Key: XXXXXXX-XXXX-XXXXX-XXXX-XXXXXXXXXXXX');
curl_setopt($chRay, CURLOPT_RETURNTRANSFER, true);
$responseRay = curl_exec($chRay);
if(curl_errno($chRay)){
//If an error occured, throw an Exception.
throw new Exception(curl_error($chRay));
}
$outputRay = json_decode($responseRay);
$usernameRay = $outputRay->data->metadata->platformUserHandle;
$levelRay = $outputRay->data->stats[0]->value;
$levelImgRay = $outputRay->data->stats[0]->metadata->iconUrl;
$killsRay = $outputRay->data->stats[2]->value;
$deathsRay = $outputRay->data->stats[3]->value;
$kdRay = $outputRay->data->stats[1]->value;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Ramon
$chRamon = curl_init($userRamon);
curl_setopt($chRamon, CURLOPT_USERPWD, 'TRN-Api-Key: XXXXXXX-XXXX-XXXXX-XXXX-XXXXXXXXXXXX');
curl_setopt($chRamon, CURLOPT_RETURNTRANSFER, true);
$responseRamon = curl_exec($chRamon);
if(curl_errno($chRamon)){
//If an error occured, throw an Exception.
throw new Exception(curl_error($chRamon));
}
$outputRamon = json_decode($responseRamon);
$usernameRamon = $outputRamon->data->metadata->platformUserHandle;
$levelRamon = $outputRamon->data->stats[0]->value;
$levelImgRamon = $outputRamon->data->stats[0]->metadata->iconUrl;
$killsRamon = $outputRamon->data->stats[2]->value;
$deathsRamon = $outputRamon->data->stats[3]->value;
$kdRamon = $outputRamon->data->stats[1]->value;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Mark
$chMark = curl_init($userMark);
curl_setopt($chMark, CURLOPT_USERPWD, 'TRN-Api-Key: XXXXXXX-XXXX-XXXXX-XXXX-XXXXXXXXXXXX');
curl_setopt($chMark, CURLOPT_RETURNTRANSFER, true);
$responseMark = curl_exec($chMark);
if(curl_errno($chMark)){
//If an error occured, throw an Exception.
throw new Exception(curl_error($chMark));
}
$outputMark = json_decode($responseMark);
$usernameMark = $outputMark->data->metadata->platformUserHandle;
$levelMark = $outputMark->data->stats[0]->value;
$levelImgMark = $outputMark->data->stats[0]->metadata->iconUrl;
$killsMark = $outputMark->data->stats[3]->value;
$deathsMark = $outputMark->data->stats[4]->value;
$kdMark = $outputMark->data->stats[2]->value;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Leon
$chLeon = curl_init($userLeon);
curl_setopt($chLeon, CURLOPT_USERPWD, 'TRN-Api-Key: XXXXXXX-XXXX-XXXXX-XXXX-XXXXXXXXXXXX');
curl_setopt($chLeon, CURLOPT_RETURNTRANSFER, true);
$responseLeon = curl_exec($chLeon);
if(curl_errno($chLeon)){
//If an error occured, throw an Exception.
throw new Exception(curl_error($chLeon));
}
$outputLeon = json_decode($responseLeon);
$usernameLeon = $outputLeon->data->metadata->platformUserHandle;
$levelLeon = $outputLeon->data->stats[0]->value;
$levelImgLeon = $outputLeon->data->stats[0]->metadata->iconUrl;
$killsLeon = $outputLeon->data->stats[3]->value;
$deathsLeon = $outputLeon->data->stats[4]->value;
$kdLeon = $outputLeon->data->stats[2]->value;
///////////////////////////////////////////////////////////////////////////////
//////////////////////////////
// Danny
$chDan = curl_init($userDan);
curl_setopt($chDan, CURLOPT_USERPWD, 'TRN-Api-Key: XXXXXXX-XXXX-XXXXX-XXXX-XXXXXXXXXXXX');
curl_setopt($chDan, CURLOPT_RETURNTRANSFER, true);
$responseDan = curl_exec($chDan);
if(curl_errno($chDan)){
//If an error occured, throw an Exception.
throw new Exception(curl_error($chDan));
}
$outputDan = json_decode($responseDan);
$usernameDan = $outputDan->data->metadata->platformUserHandle;
$levelDan = $outputDan->data->stats[0]->value;
$levelImgDan = $outputDan->data->stats[0]->metadata->iconUrl;
$killsDan = $outputDan->data->stats[2]->value;
$deathsDan = $outputDan->data->stats[3]->value;
$kdDan = $outputDan->data->stats[1]->value;
///////////////////////////////////////////////////////////////////////////////
?>
<!doctype html>
<html lang="nl">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.0/css/bootstrap.min.css" integrity="sha384-PDle/QlgIONtM1aqA2Qemk5gPOE7wFq8+Em+G/hmo5Iq0CCmYZLv3fVRDJ4MMwEA" crossorigin="anonymous">
<title>N033 Stats</title>
</head>
<body>
<div class="container">
<div class="col-sm-6 offset-sm-4">
<table class="table">
<thead>
<tr>
<th>Username</th>
<th>Level</th>
<th>Kills</th>
<th>Deaths</th>
<th>K/D</th>
</tr>
</thead>
<tbody>
<!--- REPEAT FOR EVERY USERNAME !--->
<tr>
<td valign="middle"><?php echo $usernameGurdt;?></td>
<td valign="middle"><?php echo '<img src="'.$levelImgGurdt.'" width="40" height="40"/> '.$levelGurdt;?></td>
<td valign="middle"><?php echo $killsGurdt;?></td>
<td valign="middle"><?php echo $deathsGurdt;?></td>
<td valign="middle"><?php echo $kdGurdt;?></td>
</tr>
<!--- END REPEAT FOR EVERY USERNAME !--->
<tr>
<td valign="middle"><?php echo $usernameRay;?></td>
<td valign="middle"><?php echo '<img src="'.$levelImgRay.'" width="40" height="40"/> '.$levelRay;?></td>
<td valign="middle"><?php echo $killsRay;?></td>
<td valign="middle"><?php echo $deathsRay;?></td>
<td valign="middle"><?php echo $kdRay;?></td>
</tr>
<tr>
<td valign="middle"><?php echo $usernameRamon;?></td>
<td valign="middle"><?php echo '<img src="'.$levelImgRamon.'" width="40" height="40"/> '.$levelRamon;?></td>
<td valign="middle"><?php echo $killsRamon;?></td>
<td valign="middle"><?php echo $deathsRamon;?></td>
<td valign="middle"><?php echo $kdRamon;?></td>
</tr>
<tr>
<td valign="middle"><?php echo $usernameMark;?></td>
<td valign="middle"><?php echo '<img src="'.$levelImgMark.'" width="40" height="40"/> '.$levelMark;?></td>
<td valign="middle"><?php echo $killsMark;?></td>
<td valign="middle"><?php echo $deathsMark;?></td>
<td valign="middle"><?php echo $kdMark;?></td>
</tr>
<tr>
<td valign="middle"><?php echo $usernameLeon;?></td>
<td valign="middle"><?php echo '<img src="'.$levelImgLeon.'" width="40" height="40"/> '.$levelLeon;?></td>
<td valign="middle"><?php echo $killsLeon;?></td>
<td valign="middle"><?php echo $deathsLeon;?></td>
<td valign="middle"><?php echo $kdLeon;?></td>
</tr>
<tr>
<td valign="middle"><?php echo $usernameDan;?></td>
<td valign="middle"><?php echo '<img src="'.$levelImgDan.'" width="40" height="40"/> '.$levelDan;?></td>
<td valign="middle"><?php echo $killsDan;?></td>
<td valign="middle"><?php echo $deathsDan;?></td>
<td valign="middle"><?php echo $kdDan;?></td>
</tr>
</tbody>
</table>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.0/js/bootstrap.min.js" integrity="sha384-7aThvCh9TypR7fIc2HV4O/nFMVCBwyIUKL8XCtKE+8xgCgl/PQGuFsvShjr74PBp" crossorigin="anonymous"></script>
</body>
</html>
【问题讨论】:
-
OOP 和对象应该是你的朋友
-
使用 curl 请求(用户名等)所需的数据创建一个数组,并使用
foreach循环遍历它。然后执行 curl 请求并准备数组中的所有数据。然后在表示层中再次使用foreach(您的HTML 在底部。)循环通过您准备好的结果数组并打印内容。你的问题对于stackoverflow来说有点离题,你可能想在codereview.stackexchange.com上提问 -
@B001ᛦ 在这里使用 OOP 有什么好处?你只是把一个非常简单的问题复杂化了。
-
这只是一种正确完成事情的可能方法。如果你不喜欢这样,请继续移动或标记评论;)@Xatenev