好的,所以我有一个看起来像这样的配置文件:
<?php
# EPICMC CMS CONFIG FILE
return array(
'sitename' => 'EPICMC',
'color' => '00aa00',
'url' => 'stats.epicmc.us',
'protocol' => 'https://',
);
这是我的网页。
<head>
<link rel="icon"
type="image/png"
href="avatar/<?php
$statsJSON = file_get_contents($configs['url']/api.php?task=stats&player='.$_GET['player'].'');
$stats = json_decode($statsJSON);
if(empty($stats)){
echo $_GET['player'];
echo '/16';
} else {
echo strtoupper($stats->skin);
echo '/16';
}
?>">
<link rel="apple-touch-icon"
type="image/png"
href="avatar/<?php
if(empty($stats)){
echo $_GET['player'];
echo '/250';
} else {
echo strtoupper($stats->skin);
echo '/250';
}
?>">
<title><?php echo "$configs['sitename']' - "; if(empty($_GET['player'])){ echo "STATS";} else { echo strtoupper($_GET['player']); }?></title>
<meta name="apple-mobile-web-app-title" content="<?php echo ""; if(empty($_GET['player'])){ echo "STATS";} else { echo strtoupper($_GET['player']); }?>">
<meta name=viewport content="width=device-width, user-scalable=no">
<meta name="description" content="View <?php echo $_GET['player'];?>'s <?php echo $configs['sitename']?> stats!">
<style>#profile::before{display:block;height:144px;border-radius:0;background:#0a0;-webkit-box-shadow:0 4px 0 rgba(0,0,0,.02);box-shadow:0 4px 0 rgba(0,0,0,.02);content:''}#profile{background:#fafafa;box-shadow:rgba(0,0,0,.14902) 0 1px 1px 0,rgba(0,0,0,.09804) 0 1px 2px 0;padding-bottom:38px;text-align:center;max-width:80%}#profile>img{position:relative;top:-52px;display:block;margin:auto;width:96px;height:96px;border:4px solid #fff;border-radius:0;-webkit-box-shadow:0 4px 0 rgba(0,0,0,.02);box-shadow:0 4px 0 rgba(0,0,0,.02)}#profile h2,#profile h3{font-weight:400;color:#77767e;margin-bottom:30px}#profile h2{margin-top:-30px;padding:0 16px 38px;font-size:21px}#profile h3{margin-top:-60px;padding:0 38px 16px;font-size:11px}#profile h4{font-weight:400}#locked{margin-bottom:-80px}table,td,th{border:1px solid #000;border-collapse:collapse;width:80%}td,th{padding:5px;text-align:left}</style>
</head>
<body>
<?php include("layout/header.php"); ?>
<BR>
<BR>
<center>
<aside id="profile">
<?php
function mcus_timeAgoString($dateInterval) {
$daysAgo = $dateInterval->days;
//echo $difference;
if ($daysAgo == 0){
if ($dateInterval->h == 0){
$diffStr = $dateInterval->i . " Minutes Ago";
} else {
$diffStr = $dateInterval->h . " Hours Ago";
}
} else {
if($daysAgo === 1) {
$diffStr = "1 Day Ago";
} else if($daysAgo === 7) {
$diffStr = "1 Week Ago";
} else if($daysAgo === 14) {
$diffStr = "2 Weeks Ago";
} else {
$diffStr = "$daysAgo Days Ago";
}
}
return $diffStr;
}
$get_player = $_GET['player'];
$infoJSON = file_get_contents('$url/api.php?task=info&player='.$_GET['player'].'');
$info = json_decode($infoJSON);
$statsJSON = file_get_contents('$url/api.php?task=stats&player='.$_GET['player'].'');
$stats = json_decode($statsJSON);
// $now = time(); // or your date as well`enter code here`
?>
<img src="avatar/<?php
if(empty($stats)){
echo $_GET['player'];
echo '/96';
} else {
echo strtoupper($stats->skin);
echo '/96';
}
?>">
<?php
echo '<style>';
echo '#verified {';
echo 'fill:';
echo '#';
if(empty($info->theme)){
echo "$color";
} else {
echo substr($info->theme, 0, 50);
}
echo '}';
echo '</style>';
?>
<?php
echo '<style>';
echo '.toggle {';
echo 'background-color:';
echo '#';
if(empty($info->theme)){
echo "$color";
} else {
echo substr($info->theme, 0, 50);
}
echo '}';
echo '</style>';
?>
<?php
echo '<style>';
echo '#profile::before {';
echo 'background:';
echo '#';
if(empty($info->theme)){
echo "$color";
} else {
echo substr($info->theme, 0, 50);
}
echo ' !important }';
echo '</style>';
?>
<?php
echo '<style>';
echo '#profile::before {';
echo 'background-image:';
echo 'url(';
echo substr($info->cover, 0, 50);
echo ' ) !important;';
echo '</style>';
?>
<h2>
<?php
if($info->locked == 1){
echo '<div id="locked"><h5>This username is locked.</h5></div>';
}else {
echo strip_tags($_GET['player']);
}
?>
<?php
if(substr($info->verified,0,2) == 1) {
echo '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="verified" width="24" height="24" viewBox="0 0 24 24">
<path d="M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z" />
</svg>
'
;
}
//print_r ($stats);
if(substr($info->locked,0,2) == 0) {
echo '
<h3>
';
echo 'Logged In ';
if(empty($info)){
echo "Not Registered";
} else {
//echo substr($playerAccountInfo->lastlogin,0,50);
$dtNow = new DateTime('Now');
$dtLastLogin = new DateTime($info->lastlogin);
$diLastLoginToNow = $dtNow->diff($dtLastLogin);
echo mcus_timeAgoString($diLastLoginToNow);
}
echo '';
;
}
?>
</h2>
<center>
<table>
<tr>
<th>Kills</th>
<td><?php echo empty($stats) ? "--" : substr($stats->kills, 0, 50); ?></td>
</tr>
<tr>
<th>Deaths</th>
<td><?php echo empty($stats) ? "--" : substr($stats->deaths, 0, 50); ?></td>
</tr>
<tr>
<th>Ratio</th>
<td><?php echo empty($stats) ? "--" : substr($stats->ratio, 0, 50); ?></td>
</tr>
</table>
<BR>
<table>
<tr>
<th>Joins</th>
<td><?php echo empty($stats) ? "--" : substr($stats->joins, 0, 50); ?></td>
</tr>
<tr>
<th>Quits</th>
<td><?php echo empty($stats) ? "--" : substr($stats->quits, 0, 50); ?></td>
</tr>
<tr>
<th>Kicked</th>
<td><?php echo empty($stats) ? "--" : substr($stats->kicked, 0, 50); ?></td>
</tr>
</table>
<BR>
<table>
<tr>
<th>Places</th>
<td><?php echo empty($stats) ? "--" : substr($stats->places, 0, 50); ?></td>
</tr>
<tr>
<th>Breaks</th>
<td><?php echo empty($stats) ? "--" : substr($stats->breaks, 0, 50); ?></td>
</tr>
<tr>
<th>Chats</th>
<td><?php echo empty($stats) ? "--" : substr($stats->chats, 0, 50); ?></td>
</tr>
</table>
</div>
</center>
<BR>
</center>
</aside>
</center>
<center>
<form class="search" action ="stats.php" method="GET"><input type="text" name="player" autocomplete="off" placeholder="Player Name"><BR><input type="submit" value="Search Stats"></form>
</center>
<BR>
<BR>
<?php include("layout/footer.php"); ?>
</body>
</html>
让我在header.php中回显它们,这是我使用
包含配置的地方 <?php $configs = include('config.php'); ?>
在我的header.php中,它让我回应像sitename这样的东西:
<?php echo $configs['sitename']?>
,但我的网页无效。请记住包含header.php(其中包含config.php)。我是一个PHP新手,我很确定我只是回答他们错了什么。我试图让$ sitename,$ url和$ color变得动态。
工作版本:
<?php $configs = include('config.php');
if($_GET['player'] === 0) header("Location: http://" + $configs['url']);
?>
<head>
<link rel="icon"
type="image/png"
href="face.php?u=<?php
$statsJSON = file_get_contents('http://'.$configs['url'].'/api.php?task=stats&player='.$_GET['player']);
$stats = json_decode($statsJSON);
if(empty($stats)){
echo $_GET['player'];
echo '&s=16';
} else {
echo strtoupper($stats->skin);
echo '&s=16';
}
?>">
<link rel="apple-touch-icon"
type="image/png"
href="face.php?u=<?php
if(empty($stats)){
echo $_GET['player'];
echo '&s=250';
} else {
echo strtoupper($stats->skin);
echo '&s=250';
}
?>">
<title><?php echo $configs['sitename'] . " - "; if(empty($_GET['player'])){ echo "STATS";} else { echo strtoupper($_GET['player']); }?></title>
<meta name="apple-mobile-web-app-title" content="<?php echo ""; if(empty($_GET['player'])){ echo "STATS";} else { echo strtoupper($_GET['player']); }?>">
<meta name=viewport content="width=device-width, user-scalable=no">
<meta name="description" content="View <?php echo $_GET['player'];?>'s <?php echo $configs['sitename']?> stats!">
<style>#profile::before{display:block;height:144px;border-radius:0;background:#0a0;-webkit-box-shadow:0 4px 0 rgba(0,0,0,.02);box-shadow:0 4px 0 rgba(0,0,0,.02);content:''}#profile{background:#fafafa;box-shadow:rgba(0,0,0,.14902) 0 1px 1px 0,rgba(0,0,0,.09804) 0 1px 2px 0;padding-bottom:38px;text-align:center;max-width:80%}#profile>img{position:relative;top:-52px;display:block;margin:auto;width:96px;height:96px;border:4px solid #fff;border-radius:0;-webkit-box-shadow:0 4px 0 rgba(0,0,0,.02);box-shadow:0 4px 0 rgba(0,0,0,.02)}#profile h2,#profile h3{font-weight:400;color:#77767e;margin-bottom:30px}#profile h2{margin-top:-30px;padding:0 16px 38px;font-size:21px}#profile h3{margin-top:-60px;padding:0 38px 16px;font-size:11px}#profile h4{font-weight:400}#locked{margin-bottom:-80px}table,td,th{border:1px solid #000;border-collapse:collapse;width:80%}td,th{padding:5px;text-align:left}</style>
</head>
<body>
<?php include("layout/header.php"); ?>
<BR>
<BR>
<center>
<aside id="profile">
<?php
function mcus_timeAgoString($dateInterval) {
$daysAgo = $dateInterval->days;
//echo $difference;
if ($daysAgo == 0){
if ($dateInterval->h == 0){
$diffStr = $dateInterval->i . " Minutes Ago";
} else {
$diffStr = $dateInterval->h . " Hours Ago";
}
} else {
if($daysAgo === 1) {
$diffStr = "1 Day Ago";
} else if($daysAgo === 7) {
$diffStr = "1 Week Ago";
} else if($daysAgo === 14) {
$diffStr = "2 Weeks Ago";
} else {
$diffStr = "$daysAgo Days Ago";
}
}
return $diffStr;
}
$get_player = $_GET['player'];
$infoJSON = file_get_contents('http://'.$configs['url'].'/api.php?task=info&player='.$_GET['player']);
$info = json_decode($infoJSON);
$statsJSON = file_get_contents('http://'.$configs['url'].'/api.php?task=stats&player='.$_GET['player']);
$stats = json_decode($statsJSON);
// $now = time(); // or your date as well`enter code here`
?>
<img src="face.php?u=<?php
if(empty($stats)){
echo $_GET['player'];
echo '&s=96';
} else {
echo strtoupper($stats->skin);
echo '&s=96';
}
?>">
<?php
echo '<style>';
echo '#verified {';
echo 'fill:';
echo '#';
if(empty($info->theme)){
echo $configs['color'] . ";";
} else {
echo substr($info->theme, 0, 50);
}
echo '}';
echo '</style>';
?>
<?php
echo '<style>';
echo '.toggle {';
echo 'background-color:';
echo '#';
if(empty($info->theme)){
echo $configs['color'] . ";";
} else {
echo substr($info->theme, 0, 50);
}
echo '}';
echo '</style>';
?>
<?php
echo '<style>';
echo '#profile::before {';
echo 'background:';
echo '#';
if(empty($info->theme)){
echo $configs['color'] . ";";
} else {
echo substr($info->theme, 0, 50);
}
echo ' !important }';
echo '</style>';
?>
<?php
echo '<style>';
echo '#profile::before {';
echo 'background-image:';
echo 'url(';
echo substr($info->cover, 0, 50);
echo ' ) !important;';
echo '</style>';
?>
<h2>
<?php
if($info->locked == 1){
echo '<div id="locked"><h5>This username is locked.</h5></div>';
}else {
echo strip_tags($_GET['player']);
}
?>
<?php
if(substr($info->verified,0,2) == 1) {
echo '<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="verified" width="24" height="24" viewBox="0 0 24 24">
<path d="M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z" />
</svg>
'
;
}
//print_r ($stats);
if(substr($info->locked,0,2) == 0) {
echo '
<h3>
';
echo 'Logged In ';
if(empty($info)){
echo "Not Registered";
} else {
//echo substr($playerAccountInfo->lastlogin,0,50);
$dtNow = new DateTime('Now');
$dtLastLogin = new DateTime($info->lastlogin);
$diLastLoginToNow = $dtNow->diff($dtLastLogin);
echo mcus_timeAgoString($diLastLoginToNow);
}
echo '';
;
}
?>
</h2>
<center>
<table>
<tr>
<th>Kills</th>
<td><?php echo empty($stats) ? "--" : substr($stats->kills, 0, 50); ?></td>
</tr>
<tr>
<th>Deaths</th>
<td><?php echo empty($stats) ? "--" : substr($stats->deaths, 0, 50); ?></td>
</tr>
<tr>
<th>Ratio</th>
<td><?php echo empty($stats) ? "--" : substr($stats->ratio, 0, 50); ?></td>
</tr>
</table>
<BR>
<table>
<tr>
<th>Joins</th>
<td><?php echo empty($stats) ? "--" : substr($stats->joins, 0, 50); ?></td>
</tr>
<tr>
<th>Quits</th>
<td><?php echo empty($stats) ? "--" : substr($stats->quits, 0, 50); ?></td>
</tr>
<tr>
<th>Kicked</th>
<td><?php echo empty($stats) ? "--" : substr($stats->kicked, 0, 50); ?></td>
</tr>
</table>
<BR>
<table>
<tr>
<th>Places</th>
<td><?php echo empty($stats) ? "--" : substr($stats->places, 0, 50); ?></td>
</tr>
<tr>
<th>Breaks</th>
<td><?php echo empty($stats) ? "--" : substr($stats->breaks, 0, 50); ?></td>
</tr>
<tr>
<th>Chats</th>
<td><?php echo empty($stats) ? "--" : substr($stats->chats, 0, 50); ?></td>
</tr>
</table>
</div>
</center>
<BR>
</center>
</aside>
</center>
<center>
<form class="search" action ="stats.php" method="GET"><input type="text" name="player" autocomplete="off" placeholder="Player Name"><BR><input type="submit" value="Search Stats"></form>
</center>
<BR>
<BR>
<?php include("layout/footer.php"); ?>
</body>
</html>
答案 0 :(得分:0)
当使用引号(或连接它)时,你需要在数组周围使用花括号。
http://sandbox.onlinephpfunctions.com/code/28fb84721d5c91b0c48279163c967489923f150b
所以
echo "$configs['sitename']' - ";
应该是
echo "{$configs['sitename']}' - ";
或可能是
echo $configs['sitename'] . "' - ";
文档(用于卷曲(复杂)用法):http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex
您的代码中前面的另一个问题是
$statsJSON = file_get_contents($configs['url']/api.php?task=stats&player='.$_GET['player'].'');
您需要将数组值与查询字符串
连接起来$statsJSON = file_get_contents($configs['url'] . '/api.php?task=stats&player='.$_GET['player']);
您应该启用error reporting以获取脚本运行的所有错误。
How to get useful error messages in PHP?
要启用并显示错误,请添加
error_reporting(-1); // to enable all errors
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
但是,不要在生产计算机上执行此操作,但您不希望用户遇到错误。