Ausgabe von Variablen?

PHP, Ajax, CSS, HTML, Javascript
Eben für die wirklich Harten, die alles selber machen.
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Ausgabe von Variablen?

Beitrag von Dungeonwatcher »

Hi! :cool:

Ich versuche gerade ein PHP Script (CoD Live Statistic) an das PHPBB2 Templatesystem anzupassen. Im Orginal sieht diese Statistik so aus. Dummerweise wird die HTML Ausgabe direkt in diesem Script erstellt. Also habe ich ein passendes Template geschrieben, welches ungefähr so aussehen soll. Nun hänge ich am eigentlichen PHP Code fest und bräuchte bitte mal DEN Denkanstoß um folgendes so umzuschreiben, das ich in das Template nur noch die Variablen eintragen muss. So sieht es auszugsweise aus:

Code: Alles auswählen

function farben($string) {
$string = str_replace("^0", "<font color=\"lightgray\">", $string);
$string = str_replace("^1", "<font color=\"red\">", $string);
$string = str_replace("^2", "<font color=\"green\">", $string);
$string = str_replace("^3", "<font color=\"yellow\">", $string);
$string = str_replace("^4", "<font color=\"blue\">", $string);
$string = str_replace("^5", "<font color=\"lightblue\">", $string);
$string = str_replace("^6", "<font color=\"magenta\">", $string);
$string = str_replace("^7", "<font color=\"white\">", $string);
$string = str_replace("^8", "<font color=\"lightgray\">", $string);
$string = str_replace("^9", "<font color=\"white\">", $string);
return $string . "</font>";
}
function farbig($string) {
$string = str_replace("^0", "", $string);
$string = str_replace("^1", "", $string);
$string = str_replace("^2", "", $string);
$string = str_replace("^3", "", $string);
$string = str_replace("^4", "", $string);
$string = str_replace("^5", "", $string);
$string = str_replace("^6", "", $string);
$string = str_replace("^7", "", $string);
$string = str_replace("^8", "", $string);
$string = str_replace("^9", "", $string);
return $string;
}

$server_ip = "udp://" . $server_ip;
$serverip = substr($server_ip, 6);
$connect = fsockopen($server_ip, $server_port, $errno, $errstr, 30);

if ($connect) {
  socket_set_timeout ($connect, 1, 000000);
  $send = "ÿÿÿÿ" . chr (0x02) . "getstatus";
  $debug1 = fputs($connect, $send);
  $debug2 = fwrite ($connect, $send);
  $output = fread ($connect, 1);
  if (! empty ($output)) {
    do {
      $status_pre = socket_get_status ($connect);
      $output = $output . fread ($connect, 1);
      $status_post = socket_get_status ($connect);
    } while ($status_pre['unread_bytes'] != $status_post['unread_bytes']);
};
fclose($connect);

$output = explode ("\\", $output);
$max_index = array_search ("sv_maxclients", $output);$max_clients = $output[$max_index+1];
$max_index = array_search ("sv_privateClients", $output);$privat = $output[$max_index+1];
$max_index = array_search ("mapname", $output);$mapname = $output[$max_index+1];
$max_index = array_search ("sv_hostname", $output);$hostname = $output[$max_index+1];
$max_index = array_search ("g_gametype", $output);$gametype = $output[$max_index+1];
$max_index = array_search ("sv_punkbuster", $output);$punkbuster = $output[$max_index+1];
$max_index = array_search ("sv_pure", $output);$pure = $output[$max_index+1];
$max_index = array_search ("sv_voice", $output);$voice = $output[$max_index+1];
$max_index = array_search ("g_antilag", $output);$alag = $output[$max_index+1];
$max_index = array_search ("pswrd", $output);$passwort = $output[$max_index+1];

$max_index = array_search ("_Location", $output);$Standort = $output[$max_index+1];
$max_index = array_search ("_Admin", $output);$admin = $output[$max_index+1];
$max_index = array_search ("_Website", $output);$Web = $output[$max_index+1];
$max_index = array_search ("_Host", $output);$Host = $output[$max_index+1];
$max_index = array_search ("_Email", $output);$EMail = $output[$max_index+1];
$max_index = array_search ("_IRC", $output);$IRC = $output[$max_index+1];
$max_index = array_search ("_ICQ", $output);$ICQ = $output[$max_index+1]; 

$max_index = array_search ("gamename", $output);$gamename = $output[$max_index+1];
$max_index = array_search ("shortversion", $output);$Version = $output[$max_index+1];
$max_index = array_search ("_Mod", $output);$Mod = $output[$max_index+1];
$max_index = array_search ("sv_maxPing", $output);$maxPing = $output[$max_index+1];
$max_index = array_search ("sv_minPing", $output);$minPing = $output[$max_index+1];
$max_index = array_search ("fs_game", $output);$fsgame = $output[$max_index+1];

if ($Maps[$mapname] || "") {$mapnamelong = $Maps[$mapname];}
if ($mapnamelong == "") {$mapnamelong = $mapname;}

if ($fsgame == "_Admin") {$fsgame = "";}
if ($Host == "_Admin") {$Host = "";}
if ($Host == "Admin") {$Host = "";}
if ($Mod == "_Admin") {$Mod = "";}
if ($Mod == "Admin") {$Mod = "";}
if ($IRC == "_Admin") {$IRC = "";}
if ($IRC == "#") {$IRC = "-";}
if ($ICQ == "_Admin") {$ICQ = "-";}
if ($ICQ == "Admin") {$ICQ = "-";}
if ($maxPing == "_Admin") {$maxPing = "-";}
if ($Web == "_Admin") {$Web = "-";}
if ($minPing == "_Admin") {$minPing = "-";}

if ($gamename == "Call of Duty 2") {$GameIcon = "cod2";}

if ($gametype == "re") {$gametype = "Retrieval";}
if ($gametype == "dm") {$gametype = "Deathmatch";}
if ($gametype == "sd") {$gametype = "Suchen and Zerstören";} 
if ($gametype == "tdm") {$gametype = "Team Deathmatch";}
if ($gametype == "bel") {$gametype = "Hinter feindl. Linien";}
if ($gametype == "hq") {$gametype = "Hauptquartier";}
if ($gametype == "dom") {$gametype = "Domination";}
if ($gametype == "ctf") {$gametype = "Capture the Flag";}
if ($gametype == "bas") {$gametype = "Base Assault";}

$last_value = count($output) - 1;
$players_string = $output[$last_value];
$players_string = explode("\n", $players_string);
for ($i = 1; $i != count($players_string); $i++) {
$split = explode(" ", $players_string[$i], 3);
$playerlist[$i-1]['score'] = $split[0];
$playerlist[$i-1]['ping'] = $split[1];
$playerlist[$i-1]['player'] = $split[2];
}

function cmp ($a, $b) {
	if ($a["score"] > $b["score"]) {
	return -1;
	}
	if ($a["score"] < $b["score"]) {
	return 1;
	}
	if ($a["score"] == $b["score"]) {
	return 0;
	} 	
}
@usort($playerlist, "cmp");
$players = count($playerlist) - 1;
}

// Server erreichbar :
if (!$max_clients) {
?>

<table align="center" >
<tr>
    <td><font size="2"><font color="#DADADA"><center><br><br> IP : <?=$serverip?> : <?=$server_port?> <br></font></font><br>
    <img src="<?=$img_offline?>" border="0"><br><br><font color="#DADADA">Der Server ist OffLine <br>Es werden keine Daten vom Server empfangen.<br>Bitte überprüfen Sie die richtige Eingabe der IP-Adresse und des Serverports<br>Der Server wird in 60 Sek. neu abgefragt.</font></center></td>
</tr>

</table>
<?
exit;
}
//Ausgabe:
?>

      <link rel="stylesheet" href="Style.css"> 

<table border="0" align="center" cellspacing="0" width="700">
    <tr>
      <td width="700" cellspacing="0" ><center><font size="4"><?=farben($hostname)?></font></font></center></td>
    </tr>
</table>
[...]
Ab Zeile 131 beginnt die HTML Ausgabe. Wie müsste es z.B. aussehen, damit in Zeile 148 dies

Code: Alles auswählen

<?=farben($hostname)?>
mittels Variable {HOSTMAME} im Template angezeigt wird?

So habe ich es erfolglos versucht:

Code: Alles auswählen

// Server erreichbar :
if (!$max_clients)
	{
		$template->assign_vars(array(
			'server_port' => $_SERVER["SERVER_PORT"],
			'server_software' => $_SERVER["SERVER_SOFTWARE"],
			'gametype' => $gametype["GAMETYPE"],
			'server_version' => $Version,
			'server_hostname' => $_SERVER["SERVER_HOSTNAME"]
			)
		);

	}
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich nehme mal an, daß Du diese Script in einem phpBB als Erweiterung bereibst?
Sonst müsstest Du die template.php erst einbinden und dort diverse Anpassungen vornehmen, um sie für externe PHP-Scripte auch verwenden zu können...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Ich habe mir die PHPBB PHP Vorlage genommen und den o.g. PHP Code (ohne den HTML Teil) darin eigefügt:

Code: Alles auswählen

//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Call of Duty Live Statistik';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$template->set_filenames(array(
		'body' => 'call_of_duty_stat.tpl'));

function farben($string) {
$string = str_replace("^0", "<font color=\"lightgray\">", $string);

[...]
[...]

					$players = count($playerlist) - 1;
	}

// Server erreichbar :
if (!$max_clients)
	{
		$template->assign_vars(array(
			'server_port' => $_SERVER["SERVER_PORT"],
			'server_software' => $_SERVER["SERVER_SOFTWARE"],
			'gametype' => $gametype["GAMETYPE"],
			'server_version' => $Version,
			'server_hostname' => $_SERVER["SERVER_HOSTNAME"]
			)
		);

	}

$template->pparse('body');

//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Du kannst in einem phpBB 2 Template keine Variablen oder gar PHP-Code direkt ausführen.
Das geht ggf. nur mit der template.php aus dem XS MOD Projekt.

Aus der Übersichtslichkeit heraus solltest Du Dein Script aber besser so aufbauen, wie es die phpBB-Scripte auch sind:
Verarbeite alles, und übergebe dann per $template-> alles an die darstellende Datei (inkl. Einbinden der tpl-Datei und Kopf/Fuß des phpBB).
Also dazu würde ich einfach den HTML-Teil des Scripts in eine TPL-Datei packen und eben diese einbinden.
Ist IMHO der sauberste Weg.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Ich schreibe sicher wieder komplizierter als es ist... ^6

[quote="oxpus";p="84570"]Du kannst in einem phpBB 2 Template keine Variablen oder gar PHP-Code direkt ausführen.[/quote]

Genau deswegen versuche ich ja dies umzuschreiben.
Aus der Übersichtslichkeit heraus solltest Du Dein Script aber besser so aufbauen, wie es die phpBB-Scripte auch sind:
Verarbeite alles, und übergebe dann per $template-> alles an die darstellende
Datei (inkl. Einbinden der tpl-Datei und Kopf/Fuß des phpBB).
Genau das ist ja mein Problem.
Also dazu würde ich einfach den HTML-Teil des Scripts in eine TPL-Datei packen und eben diese einbinden.
Das Template habe ich bereits aus dem HTML Teil erstellt und binde es gem. der PHPBB Doku ein. Es wird ja auch angezeigt. Nur wie bekomme ich diese Teile aus dem HTML Teil in das Template:

Code: Alles auswählen

<?=$serverip?>
<?=$server_port?>
<?=$minPing?>
<?=$maxPing?>
[...]
Wenn ich es genau so eintrage, dann wird es ignoriert. Ich meine so etwas wie dies, was ich schon erfolgreich umgesetzt habe:

Code: Alles auswählen

$template->assign_vars(array(
	'L_SERVER_IP'               => $lang['server_ip'],
	'L_SERVER_PORT'             => $lang["server_port"],
	'L_SERVER_HOSTNAME'         => $lang["server_hostname"],
	'L_SERVER_PORT'             => $lang["server_port"],
	'L_SERVER_GAME'             => $lang["server_game"],
	'L_SERVER_VERSION'          => $lang["server_version"],
	'L_SERVER_GAMER'            => $lang["server_gamer"],
	'L_SERVER_SLOTS'            => $lang["server_slots"],
	'L_SERVER_PING'             => $lang["server_ping"],
	'L_GAMER_NAME'              => $lang["gamer_name"],
	'L_GAMER_POINT'             => $lang["gamer_point"],
	'L_GAMER_PING'              => $lang["gamer_ping"]
	)
);
Ein entsprechende lang_call_of_duty_stat.php habe ich erstellt und diese wird erfolgreich eingebunden.
Zuletzt geändert von Dungeonwatcher am Do 31.Jan, 2008 12:20, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Na, wie werden denn Variablen in das Template übergeben?

Code: Alles auswählen

$template->assign_vars(array('PLATZHALTERNAME' => $variable));
Und im Template steht dann

Code: Alles auswählen

{PLATZHALTERNAME}
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

[quote="oxpus";p="84576"]Na, wie werden denn Variablen in das Template übergeben?[/quote]

Ich hatte es vor wenigen Minuten auch wieder in meiner Birne gefunden... ^1
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wer schreibt, lernt ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

[quote="oxpus";p="84579"]Wer schreibt, lernt ;)[/quote]

Genau :)

Ich hänge aber gerade wieder fest. Bisher sieht das ganze so aus. Die Beschreibung stimmt und die entsprechenden Grafiken für die Regeln werden korrekt angezeigt. Mit der Grafik für die aktuelle Map komme ich jedoch nicht klar. Folgender Code bereitet mir da Probleme:

Code: Alles auswählen

<img src="./bilder/images/<?=(file_exists("./bilder/images/$mapname.jpg") ? $mapname.".jpg" : "unknown.jpg")?>" alt="<?=(file_exists("./bilder/images/$mapname.jpg") ? $x[mapname].".jpg" : "unknown.gif")?>
Ich wollte es so umsetzen:

Code: Alles auswählen

	'MAP_MAP'	=> (file_exists("<img src='./bilder/images/$mapname.jpg") ? $mapname.".jpg" : "unknown.jpg")" alt="(file_exists("<img src='./bilder/images/$mapname.jpg') ? $x[mapname].".jpg" : "unknown.gif"),
Das klappt aber nicht.
Zuletzt geändert von Dungeonwatcher am Fr 01.Feb, 2008 16:22, insgesamt 4-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Warum immer so kompliziert denken?

Code: Alles auswählen

	'MAP_MAP'	=> (@file_exists('./bilder/images/'.$mapname.'.jpg')) ? '<img src="./bilder/images/'.$mapname.'.jpg" border="0" alt="" />' : '<img src="./bilder/images/unknown.jpg" border="0" alt="" />',
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Ich denke halt immer sooo kompliziert. :cool:

Egal, erstmal THNXfür deine Hilfe.

Bliebe noch ein einziger Schönheitsfehler. Er betrifft diese Funktion:

Code: Alles auswählen

function farben($string)
	{
		$string = str_replace("^0", "<span style=\"color:#C0C0C0\">", $string);
		$string = str_replace("^1", "<span style=\"color:#ff0000\">", $string);
		$string = str_replace("^2", "<span style=\"color:#00C000\">", $string);
		$string = str_replace("^3", "<span style=\"color:#FFFF00\">", $string);
		$string = str_replace("^4", "<span style=\"color:#0000ff\">", $string);
		$string = str_replace("^5", "<span style=\"color:#00FFFF\">", $string);
		$string = str_replace("^6", "<span style=\"color:#FF00FF\">", $string);
		$string = str_replace("^7", "<span style=\"color:#ffffff\">", $string);
		$string = str_replace("^8", "<span style=\"color:#C0C0C0\">", $string);
		$string = str_replace("^9", "<span style=\"color:#ffffff\">", $string);
		return $string . "</span>";
	}
Hiermit wird der Spielername eingefärbt so er Zeichen wie z.B. ^7 vor einen Buchstaben setzt. Das funktioniert auch fast perfekt. Das Problem ist, das das Ergebnis alles candere als W3 Konform ist:

Code: Alles auswählen

<span style="color: rgb(255, 0, 0);">Miro<span style="color: rgb(0, 0, 255);">tvo<span style="color: rgb(255, 255, 255);">rac-<span style="color: rgb(255, 0, 0);">cp<span style="color: rgb(0, 0, 255);">6u<span style="color: rgb(255, 255, 255);">ja</span></span></span></span></span></span>
D.h. ab dem zweiten <span ...> gehört davor ein </span> und nur eines gaaanz zum Schluß. Gibt's da 'ne Möglichkeit für?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nimm mal diese Funktion hier:

Code: Alles auswählen

function farben($string)
{
	$tmp_string = $string;
	
	$string = str_replace("^0", "<span style=\"color:#C0C0C0\">", $string);
	$string = str_replace("^1", "<span style=\"color:#ff0000\">", $string);
	$string = str_replace("^2", "<span style=\"color:#00C000\">", $string);
	$string = str_replace("^3", "<span style=\"color:#FFFF00\">", $string);
	$string = str_replace("^4", "<span style=\"color:#0000ff\">", $string);
	$string = str_replace("^5", "<span style=\"color:#00FFFF\">", $string);
	$string = str_replace("^6", "<span style=\"color:#FF00FF\">", $string);
	$string = str_replace("^7", "<span style=\"color:#ffffff\">", $string);
	$string = str_replace("^8", "<span style=\"color:#C0C0C0\">", $string);
	$string = str_replace("^9", "<span style=\"color:#ffffff\">", $string);

	if ($tmp_string != $string)
	{
		$string .= "</span>";
	}

	return $string;
}
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Hi großer Meister! :cool:

[quote="oxpus";p="84603"]Nimm mal diese Funktion hier:[/quote]

Jou, das bringt schon mal eine Verbesserung:

Code: Alles auswählen

<span style="color:#000000">Sa<span style="color:#ff0000">doT<span style="color:#FFFF00">ron</span>
Jetzt fehlt nur noch das </span> ab dem zweiten <span ...> in der selben Zeile.

Aber auch eine Verschlechterung:

Code: Alles auswählen

<td class="row2" align="left">samm</span></td>
Es wird jetzt hinter jedem Namen ein </span> gesetzt.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Dann sollte die Funktion doch besser so lauten:

Code: Alles auswählen

function farben($string)
{
	$tmp_string = $string;
	$string = str_replace("^0", "<span style=\"color:#C0C0C0\">", $string);
	if ($tmp_string != $string)
	{
		$string . "</span>";
	}
	
	$tmp_string = $string;
	$string = str_replace("^1", "<span style=\"color:#ff0000\">", $string);
	if ($tmp_string != $string)
	{
		$string . "</span>";
	}

	$tmp_string = $string;
	$string = str_replace("^2", "<span style=\"color:#00C000\">", $string);
	if ($tmp_string != $string)
	{
		$string . "</span>";
	}

	$tmp_string = $string;
	$string = str_replace("^3", "<span style=\"color:#FFFF00\">", $string);
	if ($tmp_string != $string)
	{
		$string . "</span>";
	}

	$tmp_string = $string;
	$string = str_replace("^4", "<span style=\"color:#0000ff\">", $string);
	if ($tmp_string != $string)
	{
		$string . "</span>";
	}
	$string = str_replace("^5", "<span style=\"color:#00FFFF\">", $string);
	if ($tmp_string != $string)
	{
		$string . "</span>";
	}

	$tmp_string = $string;
	$string = str_replace("^6", "<span style=\"color:#FF00FF\">", $string);
	if ($tmp_string != $string)
	{
		$string . "</span>";
	}

	$tmp_string = $string;
	$string = str_replace("^7", "<span style=\"color:#ffffff\">", $string);
	if ($tmp_string != $string)
	{
		$string . "</span>";
	}

	$tmp_string = $string;
	$string = str_replace("^8", "<span style=\"color:#C0C0C0\">", $string);
	if ($tmp_string != $string)
	{
		$string . "</span>";
	}

	$tmp_string = $string;
	$string = str_replace("^9", "<span style=\"color:#ffffff\">", $string);
	if ($tmp_string != $string)
	{
		$string . "</span>";
	}

	return $string;
}
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Moin! :cool:

Nööö, das ändert leider auch nichts:

Code: Alles auswählen

<td class="row2" align="left"><span style="color:#00C000">D<span style="color:#FFFF00">u<span style="color:#0000ff">n<span style="color:#00FFFF">g<span style="color:#FF00FF">e<span style="color:#ffffff">on</td>
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Kannst Du mal bitte alle beteiligten Files anhängen?
Ich habe keinen blassen Dunst, wie und wo Du diese Funktion verwendest...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Moin! :cool:

Ich spreche halt oft unfreiwillig in Rätseln... ;)

Enthalten ist auch das Original.
Dateianhänge
call_of_duty_stat.zip
(169.37 KiB) 306-mal heruntergeladen
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich spreche halt oft unfreiwillig in Rätseln...
Was es nicht einfacher macht, denn ich habe schliesslich nicht unendlich viel Zeit!

Versuchs mal mit dieser Datei hier:

[ Attachment gelöscht am Sa 02.Feb, 2008 16:31 von oxpus ]
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

[quote="oxpus";p="84614"]Was es nicht einfacher macht, denn ich habe schliesslich nicht unendlich viel Zeit![/quote]

Ich bemühe mich.
Versuchs mal mit dieser Datei hier:
Nee, das zerwürfelt die Anzeige der Namen. Das sieht nun so aus.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Sprich: Es kommt gar nichts mehr zurück...

Ich fasst erst noch einmal zusammen:
Die Spielernamen sind mit ^{0-9} vor dem eigentlichen Namen markiert, sofern die eingefärbt werden sollen. Richtig?

Dann müsste jeweils in $playerlist[$i]['player'] jeweils Einträge wie z. B. "^0oxpus" vorhanden sein.
Wenn dem so ist, verstehe ich nun nicht, warum die Funktion zum Einfärben dann gar kein Ergebnis mehr liefert, denn die löst ja nun die ersten 2 Zeichen vom Spielernamen ab und wandelt diese in die Farbformatierung um.

So zumindest der theoretische Ansatz.

Ich sehr aber, daß ich einige kleinere Fehler gemacht habe.
Versuche es mal mit dieser erneut:

[ Attachment gelöscht am So 03.Feb, 2008 10:46 von oxpus ]
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

[quote="oxpus";p="84620"]Ich fasst erst noch einmal zusammen:
Die Spielernamen sind mit ^{0-9} vor dem eigentlichen Namen markiert, sofern die eingefärbt werden sollen. Richtig?[/quote]

Korrekt.
Dann müsste jeweils in $playerlist[$i]['player'] jeweils Einträge wie z. B. "^0oxpus" vorhanden sein.
Korrekt. Es kann/darf aber auch jeder Buchstabe anders gefärbt sein: "^0o^1x^2p^3u^4s"
Wenn dem so ist, verstehe ich nun nicht, warum die Funktion zum Einfärben dann gar kein Ergebnis mehr liefert, denn die löst ja nun die ersten 2 Zeichen vom Spielernamen ab und wandelt diese in die Farbformatierung um.

So zumindest der theoretische Ansatz.
Sie liefert jetzt genau das Ergebnis mit den ersten 2 Zeichen, so diese ein ^{1-9} enthalten. Nur müssten die anderen ^{1-9} auch noch ersetzt werden.
Versuche es mal mit dieser erneut:
Jetzt wird dies daraus aus

Code: Alles auswählen

<span style="color: #000000">o^1x^2p^3u^4s</span>
Spricht was dagegen wenn ich die gleiche Frage auch mal auf phpBB.de stelle?
Zuletzt geändert von Dungeonwatcher am So 03.Feb, 2008 10:24, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Spricht was dagegen wenn ich die gleiche Frage auch mal auf phpBB.de stelle?
Dann stelle ich den Support hier ein!
Es kann/darf aber auch jeder Buchstabe anders gefärbt sein: "^0o^1x^2p^3u^4s"
Also langsam werde ich nun ärgerlich, wenn ständig die wichtigsten Details verschwiegen oder nicht genau benannt werden!
Wenn sowas möglich ist, warum dann nicht gleich alle Details nennen?
Ich ging die ganze Zeit davon aus, daß lediglich am Anfang eines Usernamens Farbcodes stehen können!
Daher am besten immer Beispiele der Daten liefern, die verarbeitet werden sollen und nicht blos beschreiben.

So wie das sich jetzt herausstellt wird das klar eine ganz andere Aufgabe!

Und die ist so zu lösen:

Code: Alles auswählen

function farben($string)
{
	$string .= '^';

	$string = preg_replace("#(\^0)(.*?)(\^)#", "<span style=\"color: #000000\">\\2</span>^", $string);
	$string = preg_replace("#(\^1)(.*?)(\^)#", "<span style=\"color: #FF0000\">\\2</span>^", $string);
	$string = preg_replace("#(\^2)(.*?)(\^)#", "<span style=\"color: #00C000\">\\2</span>^", $string);
	$string = preg_replace("#(\^3)(.*?)(\^)#", "<span style=\"color: #FFFF00\">\\2</span>^", $string);
	$string = preg_replace("#(\^4)(.*?)(\^)#", "<span style=\"color: #0000FF\">\\2</span>^", $string);
	$string = preg_replace("#(\^5)(.*?)(\^)#", "<span style=\"color: #00FFFF\">\\2</span>^", $string);
	$string = preg_replace("#(\^6)(.*?)(\^)#", "<span style=\"color: #FF00FF\">\\2</span>^", $string);
	$string = preg_replace("#(\^7)(.*?)(\^)#", "<span style=\"color: #FFFFFF\">\\2</span>^", $string);
	$string = preg_replace("#(\^8)(.*?)(\^)#", "<span style=\"color: #C0C0C0\">\\2</span>^", $string);
	$string = preg_replace("#(\^9)(.*?)(\^)#", "<span style=\"color: #FFFFFF\">\\2</span>^", $string);

	$string = substr($string, 0, strlen($string)-1);
 
	return $string;
}
Zuletzt geändert von oxpus am So 03.Feb, 2008 11:16, insgesamt 3-mal geändert.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

[quote="oxpus";p="84635"]
Spricht was dagegen wenn ich die gleiche Frage auch mal auf phpBB.de stelle?
Dann stelle ich den Support hier ein![/quote]

Um Himmels Willen nur das nicht.
Also langsam werde ich nun ärgerlich, wenn ständig die wichtigsten Details verschwiegen oder nicht genau benannt werden!
Wenn sowas möglich ist, warum dann nicht gleich alle Details nennen?
:( Das war nun wahrlich nicht meine Absicht was zu "verschweigen".
So wie das sich jetzt herausstellt wird das klar eine ganz andere Aufgabe!

Und die ist so zu lösen:
Suuuuper Perfekt :anbet :anbet :anbet
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Mit etwas meht Details am Anfang wäre die Lösung gleich da gewesen.
Weniger Grübel auf meiner Seite und ein schnelleres Ergebnis bei Dir ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Das sagst du so schön. :cool:

Es gibt aber tatsächlich noch einen Schönheitsfehler. Warum auch immer gibt es Spieler, die mehrmals den gleichen Farbcode hintereinander setzen. Sie tun dies obwohl alle nachfolgenden Zeichen die selbe Farbe haben sollen. Das sieht dann so z.B. aus:

^0B^1ei^1s^3p^3i^4e^1l

Daraus wird dann dies

Bei^1sp^3iel
Antworten