0

サーバー情報をPNG画像に出力する簡単なスクリプトを作成しました。これは機能しますが、いくつかの問題があります。

phpを使用してソースサーバーから変数を取得し、出力を印刷する無料のスクリプトを使用しました。画像に印刷されるように編集しましたが、どういうわけか、プレーヤーとマップ値は印刷されません。

これは、スクリプトが使用するconfig.phpです。

<?php

$servers = array (array ('name' => '[TF2] gameTek Idle Trade Server #1 [NO]',
                         'ip' => '84.234.160.79',
                         'port' => 27015),
                         array ('name' => '[TF2] gameTek Achevments Idle Trade Server #2 [NO]',
                         'ip' => '84.234.160.79',
                         'port' => 27017), 

                         array ('name' => '[TF2] gameTek BOT Fun #3 [NO]',
                         'ip' => '84.234.160.79',
                         'port' => 27016),
                           array ('name' => '[TF2] gameTek Achevments Idle Trade Server #5 [DFW]',
                         'ip' => '50.56.179.18',
                         'port' => 27015)
                         );
/*
$cachelifetime = 30;
$cachefile = './cache/servers.html';
*/
$output = '
<p><a href="steam://connect/#ip#:#port#">
<img 
src="Generate.php?n=#name#&p=#players#/#maxplayers#&m=#map#" alt="" /></a></p>
';

?>

印刷時の出力はこちら

http://teamgamers.net/GetInfoServer/Generate.php?n=[TF2]%20gameTek%20Idle%20Trade%20Server%20#1 [NO]&p=3/32&m=tek_idle_trade_v5

では、サーバー名のみを出力し、残りは出力しないように、完全に機能するようにするにはどうすればよいでしょうか。私は少し理解しようとしましたが、運がありませんでした。

Generate.php

<?php
$Name = $_GET['n'];
$Players = $_GET['p'];
$Map = $_GET['m'];
$Image = @ImageCreateFromPNG("./Server.png");
$Cord = imagecolorallocate($Image, 255, 255, 255);
imagestring($Image,15,60,7,$Name,14);
imagestring($Image,15,62,37,$Players,14);
imagestring($Image,15,140,37,$Map,14);
header('Content-type: image/png');
imagepng($Image);
?>
4

1 に答える 1

0

urlencodeをチェックしてください; 基本的に、URLに入力したものはすべて、メタ文字が含まれていないことを確認するためにurlencodeに渡す必要があります。

$servers = array (array ('name' => urlencode('[TF2] gameTek Idle Trade Server #1 [NO]'),
// and so on...
于 2012-10-05T19:30:41.030 に答える