Mitgliederliste wow homepage

In dem Code ist aber kein Fehler drin, bis auf einen Logikfehler, wenn man die Cache-Datei manuell anlegen muss. ^^ Ich habe den Code oben noch mal angepasst, entsprechend dem aus der hier angehängten Datei.

Kopiere den Quellcode aus dem Forum hier keines falls in irgendeinen WYSIWYG-Editor, dann übernimmst du nämlich beispielsweise die Farb-BBCode-Definitonen aus der Foren-Darstellung hier mit und das knallt natürlich beim Aufruf des Scripts.

Wie oben geschrieben musst du bei deinem Server die Cache-Datei "cache.sth" ggfs. manuell im Verzeichnis anlegen, in dem auch die mitglieder.php liegt und der Datei Schreibrechte geben (0666 sollte reichen).

Ich verspreche dir, wenn du das Script ohne Caching betreibst, wird der API-Server deinen Server irgendwann wegen zu vielen Anfragen blockieren und dann bekommst du gar keine Daten mehr. Aber abgesehen davon, ist der Aufruf dadurch auch verdammt langsam. ^^

Wenn du vom Hoster aus die Möglichkeit hast, baust du dir im Idealfall aber einen Cronjob, der nur den oberen Teil mit dem Abfragen einmal die Stunde von der API übernimmt, also das Holen der Daten und wegschreiben in die Cache-Datei. In mitglieder.php holst du du dir dann nur noch die Daten aus der Cache-Datei und alles flutscht. ^^


[attachment=13477:mitglieder.php]

Wow, du bist einfach nur der hammer, genial.
hab nur noch den border in der unteren Tabelle auf 1 gesetzt und die width 205px gegeben und es ist genau so wollte ich es haben wollte, stimmt auf dem server geht es so wie du die datei gegeben hast, habe es voher immer offline erst hier auf dem Rechner mit Webocton ausprobiert und dort eingestellt, was nun mit deiner hier angebotenen Datei auch funktioniert ^^. Habe gerade hoch geladen und die datei erstellt und auch die Schreibrechte gegeben, und siehe da, es funktioniert Perfekt. Weis nun nur nicht wie ich oben in der Gildeninfo die ausgelesenen daten statt schwarz in Grün oder weiss ändern kann.

VIELEN VIELEN DANK AN DICH.

Danke auch an dich spectrumizer, für deine Unterstützung. Hatte anfangs nicht mit so genialer hilfe gerechnet, und siehe da, nun geht alles wie man es möchte.

Hammer genial.
 
Zuletzt bearbeitet von einem Moderator:
Die Mitglieder-Liste der ersten Abfrage enthält ja bereits das Datum, wann Blizzard die Daten des jeweiligen Charakters zuletzt in der API aktualisiert hat. Hier könnte man die Cache-Abfrage bspw. noch "beschleunigen" indem man sich die Erfolgspunkte des jeweiligen Chars nur holt, wenn sich das Datum geändert hat seit der letzten Abfrage.
 
Kann mir jemand helfen einen Cron-Job zu erstellen, der Täglich ab 03:00 Uhr die daten einmal abruft, und sonst nur auf
die gespeicherten Dateien vom Cron-Job zugreift?

<html>
<head>
<meta charset="ISO-8859-1" />
<meta name="description" content="" />
<meta name="author" content="" />
<meta name="keywords" content="" />

</head>
<body>
<?php
// Konfiguration
$sGuildName = 'Familia de Lux';
$sRealmName = 'Lothar';
$sGuildFields= 'members'; // Möglich sind: achievements, members
$iMaxEntries = 4; // Anzahl der maximalen Einträge pro Zeile
$sMemberFields = 'talents';
$sCacheFile = 'cache.sth';
$iCacheTimeout = 3600; // Cache-Timeout in Sekunden
$sAPIURL = 'http://eu.battle.net/api/wow/';
$aGuildData = array();

$aClassNames = array('Krieger', 'Paladin', 'J&auml;ger', 'Schurke', 'Priester', 'Todesritter', 'Schamane', 'Magier', 'Hexenmeister', 'M&ouml;nch', 'Druide');
$aClassRaces = array('Mensch', 'Orc', 'Zwerg', 'Nachtelf', 'Untoter', 'Taure', 'Gnom', 'Troll', 'Goblin', 'Blutelf', 'Draenei', '', '', '', '', '', '', '', '', '', '', 'Worg', '', '', 'Pandare');
$aClassColors = array('#ffffff','#C69B6D', '#F48CBA','#AAD372','#FFF468','#F0EBE0','#C41E3B','#2359FF','#68CCEF','#9382C9','#00FFBA','#FF7C0A');
$aClassText = array('#FFFFFF');
$sRawEncodedRealm = rawurlencode($sRealmName);
$sRawEncodedGuild = rawurlencode($sGuildName);
$sResponse = null;
$sOutput = '';

if( !is_file($sCacheFile) || (time() - filemtime($sCacheFile)) > $iCacheTimeout || filesize($sCacheFile) == 0 ) {

// Auslesen der Gildendaten.
$sRequestURL = $sAPIURL . 'guild/'.$sRawEncodedRealm.'/'.$sRawEncodedGuild.'?fields='.$sGuildFields;
$sResponse = @file_get_contents($sRequestURL, true);
if (strpos($http_response_header[0], '200')) {

$http_response_header = null;
$aRawData = json_decode($sResponse, true);
$aGuildData = $aRawData;
unset($aGuildData['members']);

foreach ($aRawData['members'] as $aMemberItem )
{
$sCharName = $aMemberItem['character']['name'];
$sCharResponse = @file_get_contents(
$sAPIURL . 'character/'.$sRawEncodedRealm.'/'.urlencode(html_entity_decode($sCharName, ENT_COMPAT, 'UTF-8')).'?fields='.$sMemberFields
, true
);

// Prüfe Rückgabe
if (strpos($http_response_header[0], '200')) {

$aDecodeMember = json_decode($sCharResponse, true);
$aGuildData['members'][] = json_decode($sCharResponse, true);
}
}

file_put_contents($sCacheFile, json_encode($aGuildData));
unset($aGuild, $decodeMember, $aRawData, $http_response_header, $sCharResponse, $sResponse);
}
} else {
$aGuildData = json_decode(file_get_contents($sCacheFile), true);
}

// Prüfe Rückgabe
if ( sizeof($aGuildData) ) {

$sOutput .= '<p align="center"><table border="1"><tr>';
$sOutput .= '<td><h2><font color="#990000">Gildeninformationen</font></h2></td>';
$sOutput .= "<td><p align='center'><img src='css/images/logo.png' width='50' height='50' /></p></td>";
$sOutput .= '<tr><td><b><font color="#33FF00">Gildenname:</b></td><td style="color: #33FF00;"> '.$aGuildData['name'].'</font><br /></td></tr>';
$sOutput .= '<tr><td><b><font color="#33FF00">Realm:</b></td><td style="color: #33FF00;"> '.$aGuildData['realm'].'</font><br /></td>';
$sOutput .= '<tr><td><b><font color="#33FF00">Gildenstufe:</b></td><td style="color: #33FF00;"> '.$aGuildData['level'].'</font><br /></td>';
$sOutput .= '<tr><td><b><font color="#33FF00">Mitgliederanzahl:</b></td><td style="color: #33FF00;"> '.count($aGuildData['members']).'</font><br /></td>';
$sOutput .= '<tr><td><b><font color="#33FF00">Gildenerfolgspunkte:</b></td><td style="color: #33FF00;"> '.$aGuildData['achievementPoints'].'</font><br /></td>';
$sOutput .= '</tr></table></p>';

$sOutput .= '<div>';
$iColumn = 0;

foreach ($aGuildData['members'] as $aMemberItem ) {

$sOutput .= '<div style="float:left">';
$sOutput .= '<p align="center"><table border="1" width="205px" style=\'background-color:'.$aClassColors[$aMemberItem['class']].'\'><tr><tr><td colspan="2" align="center"><h3>'.htmlentities($aMemberItem['name'], ENT_COMPAT, 'UTF-8').'</h3></td></tr>';
$sOutput .= '<tr><td><b>Klasse:</b></td><td> ';
$sOutput .= '<font>'.$aClassNames[$aMemberItem['class'] - 1].'</font></td></tr>';
$sOutput .= '<tr><td><b>Level:</b></td><td> '.$aMemberItem['level'].'</td></tr>';
$sOutput .= '<tr><td><b>Volk:</b></td><td> ';
$sOutput .= '<font>'.$aClassRaces[$aMemberItem['race'] - 1].'</font></td></tr>';
$sOutput .= '<tr><td><b>Erfolgspunkte:</b></td><td> '.$aMemberItem['achievementPoints'].'</td></tr>';
$sOutput .= '</ br></tr></table></p>';
$sOutput .= '</div>';

$iColumn++;
if( $iColumn > $iMaxEntries-1 ) {
$sOutput .= '<div style="clear:both"></div>';
$iColumn = 0;
}
}
$sOutput .= '</div>';
}
echo $sOutput;
unset($aGuildData, $aMemberItem, $aMemberItem, $sOutput);
?>
</body>
</html>
 
cronjobs kannst du bei deinem hoster erstellen.
dieser ruft dann 1x täglich ein php file auf, welches dann die function() aufruft, welches dir die daten dann her holt.

ps: bitte nutze pastie.org für sourcecode.
pps: bitte nutze kein file_get_contents mehr.
ppps: bitte nutze keine veralteten charsets mehr.
 
cronjobs kannst du bei deinem hoster erstellen.
dieser ruft dann 1x täglich ein php file auf, welches dann die function() aufruft, welches dir die daten dann her holt.

ps: bitte nutze pastie.org für sourcecode.
pps: bitte nutze kein file_get_contents mehr.
ppps: bitte nutze keine veralteten charsets mehr.

Hallo Veshrae,

Das mit dem Cronjob hoster hab ich heute dank einem Mitarbeier von meinem Hoster erstellen können und einer php-Seite
zuweisen können welches einmal pro Tag abruft.

Nun weis ich leider immer noch nicht, welche daten ich nun aus meinem Code nehmen darf (muss) und diesen abändern,
damit er meine Datein aus der Cronjob-php hier einfügt.

Ja das mit dem pastie.org werde ich nun ab jetzt nutzen.

Diesen Code hat mir Zam geholfen, das er so funktioniert, wie ich es anders machen könnte, weiss ich leider nicht, da ich
mit php in den Anfangs-schuhen stecke.
 
Hallo Veshrae,

Das mit dem Cronjob hoster hab ich heute dank einem Mitarbeier von meinem Hoster erstellen können und einer php-Seite
zuweisen können welches einmal pro Tag abruft.

Nun weis ich leider immer noch nicht, welche daten ich nun aus meinem Code nehmen darf (muss) und diesen abändern,
damit er meine Datein aus der Cronjob-php hier einfügt.

Ja das mit dem pastie.org werde ich nun ab jetzt nutzen.

Diesen Code hat mir Zam geholfen, das er so funktioniert, wie ich es anders machen könnte, weiss ich leider nicht, da ich
mit php in den Anfangs-schuhen stecke.

Das mit der Seite pastie.org klappt irgendwie nicht, der kopiert immer dennoch nur den Code nicht mit der Nummerierung, desahlb
schreibe ich es hier noch mal so rein.
Habe es nun so gelöst:

Cronjob-php:

Code:
 <?php
// Konfiguration
$sGuildName = 'Familia de Lux';
$sRealmName = 'Lothar';
$sGuildFields= 'members'; // Möglich sind: achievements, members
$iMaxEntries = 3; // Anzahl der maximalen Einträge pro Zeile
$sMemberFields = 'talents';
$sCacheFile = 'cache.sth';
$iCacheTimeout = 3600; // Cache-Timeout in Sekunden
$sAPIURL = 'http://eu.battle.net/api/wow/';
$aGuildData = array();

$sRawEncodedRealm = rawurlencode($sRealmName);
$sRawEncodedGuild = rawurlencode($sGuildName);
$sResponse = null;

if( !is_file($sCacheFile) || (time() - filemtime($sCacheFile)) > $iCacheTimeout || filesize($sCacheFile) == 0 ) {

	// Auslesen der Gildendaten.
	$sRequestURL = $sAPIURL . 'guild/'.$sRawEncodedRealm.'/'.$sRawEncodedGuild.'?fields='.$sGuildFields;
	$sResponse = @file_get_contents($sRequestURL, true);
	if (strpos($http_response_header[0], '200')) {

 	$http_response_header = null;
 	$aRawData = json_decode($sResponse, true);
 	$aGuildData = $aRawData;
 	unset($aGuildData['members']);

 	foreach ($aRawData['members'] as $aMemberItem )
 	{
 	$sCharName = $aMemberItem['character']['name'];
 	$sCharResponse = @file_get_contents(
 	$sAPIURL . 'character/'.$sRawEncodedRealm.'/'.urlencode(html_entity_decode($sCharName, ENT_COMPAT, 'UTF-8')).'?fields='.$sMemberFields
 	, true
 	);

 	// Prüfe Rückgabe
 	if (strpos($http_response_header[0], '200')) {

 	$aDecodeMember = json_decode($sCharResponse, true);
 	$aGuildData['members'][] = json_decode($sCharResponse, true);
 	}
 	}

 	file_put_contents($sCacheFile, json_encode($aGuildData));
 	unset($aGuild, $decodeMember, $aRawData, $http_response_header, $sCharResponse, $sResponse);
	}
}
?>

Anzeige-php:

Code:
<html>
<head>
	<meta charset="ISO-8859-1" />
	<meta name="description" content="" />
	<meta name="author" content="" />
	<meta name="keywords" content="" />

</head>
<body>
<?php
// Konfiguration
$iMaxEntries = 3; // Anzahl der maximalen Einträge pro Zeile
$sCacheFile = 'cache.sth';
$aGuildData = array();

$aClassNames = array('Krieger', 'Paladin', 'J&auml;ger', 'Schurke', 'Priester', 'Todesritter', 'Schamane', 'Magier', 'Hexenmeister', 'M&ouml;nch', 'Druide');
$aClassRaces = array('Mensch', 'Orc', 'Zwerg', 'Nachtelf', 'Untoter', 'Taure', 'Gnom', 'Troll', 'Goblin', 'Blutelf', 'Draenei', '', '', '', '', '', '', '', '', '', '', 'Worg', '', '', 'Pandare');
$aClassColors = array('#ffffff','#C69B6D', '#F48CBA','#AAD372','#FFF468','#F0EBE0','#C41E3B','#2359FF','#68CCEF','#9382C9','#00FFBA','#FF7C0A');
$aClassText = array('#FFFFFF');
$sOutput = '';

if (file_exists($sCacheFile))
	$aGuildData = json_decode(file_get_contents($sCacheFile), true);


// Prüfe Rückgabe
if ( sizeof($aGuildData) ) {

	$sOutput .= '<p align="center"><table border="1"><tr>';
	$sOutput .= '<td><h2><font color="#990000">Gildeninformationen</font></h2></td>';
	$sOutput .= "<td><p align='center'><img src='css/images/logo.png' width='50' height='50' /></p></td>";
	$sOutput .= '<tr><td><b><font color="#33FF00">Gildenname:</b></td><td style="color: #33FF00;"> '.$aGuildData['name'].'</font><br /></td></tr>';
	$sOutput .= '<tr><td><b><font color="#33FF00">Realm:</b></td><td style="color: #33FF00;"> '.$aGuildData['realm'].'</font><br /></td>';
	$sOutput .= '<tr><td><b><font color="#33FF00">Gildenstufe:</b></td><td style="color: #33FF00;"> '.$aGuildData['level'].'</font><br /></td>';
	$sOutput .= '<tr><td><b><font color="#33FF00">Mitgliederanzahl:</b></td><td style="color: #33FF00;"> '.count($aGuildData['members']).'</font><br /></td>';
	$sOutput .= '<tr><td><b><font color="#33FF00">Gildenerfolgspunkte:</b></td><td style="color: #33FF00;"> '.$aGuildData['achievementPoints'].'</font><br /></td>';
	$sOutput .= '</tr></table></p>';

	$sOutput .= '<div>';
	$iColumn = 0;

	foreach ($aGuildData['members'] as $aMemberItem ) {

 	$sOutput .= '<div style="float:left">';
 	$sOutput .= '<p align="center"><table border="1" width="205px" style=\'background-color:'.$aClassColors[$aMemberItem['class']].'\'><tr><tr><td colspan="2" align="center"><h3>'.htmlentities($aMemberItem['name'], ENT_COMPAT, 'UTF-8').'</h3></td></tr>';
 	$sOutput .= '<tr><td><b>Klasse:</b></td><td> ';
 	$sOutput .= '<font>'.$aClassNames[$aMemberItem['class'] - 1].'</font></td></tr>';
 	$sOutput .= '<tr><td><b>Level:</b></td><td> '.$aMemberItem['level'].'</td></tr>';
 	$sOutput .= '<tr><td><b>Volk:</b></td><td> ';
 	$sOutput .= '<font>'.$aClassRaces[$aMemberItem['race'] - 1].'</font></td></tr>';
 	$sOutput .= '<tr><td><b>Erfolgspunkte:</b></td><td> '.$aMemberItem['achievementPoints'].'</td></tr>';
 	$sOutput .= '</ br></tr></table></p>';
 	$sOutput .= '</div>';

 	$iColumn++;
 	if( $iColumn > $iMaxEntries-1 ) {
 	$sOutput .= '<div style="clear:both"></div>';
 	$iColumn = 0;
 	}
	}
	$sOutput .= '</div>';
}
echo $sOutput;
unset($aGuildData, $aMemberItem, $aMemberItem, $sOutput);
?>
</body>
</html>

Denke mal das dies so richtig.
 
file_exists() stammt aber nicht aus meinem Code Ich nutze ausnahmslos is_file() aus Optimierungsgründen.
 
file_exists() stammt aber nicht aus meinem Code Ich nutze ausnahmslos is_file() aus Optimierungsgründen.

ja hab gesehen das dies der gemacht hatte der mir bei dem cronjob geholfen hatte

Kann mir evtl. noch jemand helfen, da ich gerne die Zeit und datum anzeigen lassen würde, wann der cronjob die daten aktualisiert hat.
bekomme das irgendwie nicht hin, das so hinein zu schreiben das er die zeit schreibt und dann bei der mitgliederliste dann anzeigt.
hab in die konfig im cronjob
Code:
 [color=#000088][size=2]$datum[/size][color=#174C5F][size=2] [/size][color=#339933][size=2]=[/size][color=#174C5F][size=2] [/size][color=#990000][size=2]date[/size][color=#009900][size=2]([/size][color=#0000FF][size=2]"d.m.Y"[/size][color=#339933][size=2],[/size][color=#000088][size=2]$timestamp[/size][color=#009900][size=2])[/size][color=#339933][size=2]; [/size][color=#000088][size=2]$uhrzeit[/size][color=#174C5F][size=2] [/size][color=#339933][size=2]=[/size][color=#174C5F][size=2] [/size][color=#990000][size=2]date[/size][color=#009900][size=2]([/size][color=#0000FF][size=2]"H:i"[/size][color=#339933][size=2],[/size][color=#000088][size=2]$timestamp[/size][color=#009900][size=2])[/size][color=#339933][size=2]; [/size]
eingefügt, und
Code:
[color=#4E7F00][size=2]echo[/size][color=#174C5F][size=2] [/size][color=#000088][size=2]$datum[/size][color=#339933][size=2],[/size][color=#0000FF][size=2]" - "[/size][color=#339933][size=2],[/size][color=#000088][size=2]$uhrzeit[/size][color=#339933][size=2],[/size][color=#0000FF][size=2]" Uhr"[/size][color=#339933][size=2]; [/size][size=2]
in die mitgliederliste. geht nicht, dann wurde mir gesagt das er ja schon eine[/size]
zeit speichert und solle die doch nehmen,
Code:
 [/size] $sOutput .= '<tr><td colspan="2" style="background-color: #FF0000;" align="center">Letzte Aktualisierung: '.$lastModified = date('d.m.Y H:i:s', $aGuildData['lastModified'] / 1000).' Uhr</td></tr>';[size=2]
funktioniert zwar die zeit anzuzeigen, jedoch nicht der cronjob neu geladen wurde sondern denke mal wenn daten von wow geändert wurden.

wie kann ich also nun die zeit richtig anzeigen lassen die ich haben möchte?
 
Zuletzt bearbeitet von einem Moderator:
Code:
$lastModified = date('d.m.Y H:i:s', $aGuildData['lastModified'] / 1000)


Was soll denn der Quatsch mitten im String? ^^ Das ist eine Variablenzuweisung, da wirst du nicht viel zu sehen bekommen, außerdem sollte das an der Stelle einen Syntax-Fehler schmeißen.
Und kopiere die Code-Sachen bitte vorher ins Notepad, wenn du sie hier raus kopierst. Die Zwischenablage kopiert die FARBCODE-Definitonen des Forums mit. Das haben wir dir aber weiter oben schon gesagt ^^
 
Zuletzt bearbeitet von einem Moderator:
Code:
$lastModified = date('d.m.Y H:i:s', $aGuildData['lastModified'] / 1000)


Was soll denn der Quatsch mitten im String? ^^ Das ist eine Variablenzuweisung, da wirst du nicht viel zu sehen bekommen, außerdem sollte das an der Stelle einen Syntax-Fehler schmeißen.
Und kopiere die Code-Sachen bitte vorher ins Notepad, wenn du sie hier raus kopierst. Die Zwischenablage kopiert die FARBCODE-Definitonen des Forums mit. Das haben wir dir aber weiter oben schon gesagt ^^

bekomme da keine Fehlermeldung sondern nen Datum und ne Uhrzeit angezeigt.
ich kopiere die code´s ja nicht hier raus, sondern aus meinem webocton.

nur leider weis ich nun noch immer nicht, wie ich das hin bekommen kann
 
Zuletzt bearbeitet von einem Moderator:
Code:
<?php
	header('Content-Type: text/html; charset=utf-8');
	// guild configuration
	$realm 		= 'Die Silberne Hand';
	$guild 		= 'Drachensilber';
	$fields 	= 'members';
	$ranks		= array(0,1,3); 		// only use this guild ranks
	$hidenames	= array('Badmax');		// filter those usernames

	// get data via curl
	$api 		= 'http://eu.battle.net/api/wow/guild/';
	$url 		= $api.strtolower(preg_replace('/\s+/','-',$realm)).'/'.strtolower(preg_replace('/\s+/','-',$guild)).'?fields='.$fields;
	$ch 		= curl_init();
	curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
	curl_setopt($ch,CURLOPT_URL,$url);
	$data		= json_decode(curl_exec($ch),true);

	// output data
	$classes	= array('Krieger', 'Paladin', 'Jäger', 'Schurke', 'Priester', 'Todesritter', 'Schamane', 'Magier', 'Hexenmeister', 'Mönch', 'Druide');
	$races		= array('Mensch', 'Orc', 'Zwerg', 'Nachtelf', 'Untoter', 'Taure', 'Gnom', 'Troll', 'Goblin', 'Blutelf', 'Draenei', '', '', '', '', '', '', '', '', '', '', 'Worg', '', '', 'Pandare');
	$characters = [];

	// fill member data
	foreach($data['members'] as $member) {
		if(in_array($member['rank'],$ranks,true) && !in_array($member['character']['name'],$hidenames)) {
			$char 								= $member['character'];
			$class 								= $classes[$char['class']-1];
			$characters[$class][$char['name']] 	= $char;
		}
	}

	// generate output
	$output	= '';
	foreach($characters as $class => $chars) {
		if($class!='0') {
			$output .= '<div class="box '.strtolower($class).'">';
			$output .= '<h3>'.$class.'</h3>';
			$output .= '<ul class="charlist">';
			$output .= '<li>';
			foreach($chars as $char) {
				$output .= '<ul class="char">';
				$output .= '<li class="name">'.$char['name'].'</li>';
				$output .= '<li class="achievementpoints">'.$char['achievementPoints'].'</li>';
				$output .= '</ul>';
			}
			$output .= '</li>';
			$output .= '</ul>';
			$output .= '</div>';
		}
	}

	// start output in external file
	$file = 'cache.txt';
	file_put_contents($file,$output);
?>


mal eben kurz gemacht :/
 
Code:
<?php
	header('Content-Type: text/html; charset=utf-8');
	// guild configuration
	$realm 		= 'Die Silberne Hand';
	$guild 		= 'Drachensilber';
	$fields 	= 'members';
	$ranks		= array(0,1,3); 		// only use this guild ranks
	$hidenames	= array('Badmax');		// filter those usernames

	// get data via curl
	$api 		= 'http://eu.battle.net/api/wow/guild/';
	$url 		= $api.strtolower(preg_replace('/\s+/','-',$realm)).'/'.strtolower(preg_replace('/\s+/','-',$guild)).'?fields='.$fields;
	$ch 		= curl_init();
	curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
	curl_setopt($ch,CURLOPT_URL,$url);
	$data		= json_decode(curl_exec($ch),true);

	// output data
	$classes	= array('Krieger', 'Paladin', 'Jäger', 'Schurke', 'Priester', 'Todesritter', 'Schamane', 'Magier', 'Hexenmeister', 'Mönch', 'Druide');
	$races		= array('Mensch', 'Orc', 'Zwerg', 'Nachtelf', 'Untoter', 'Taure', 'Gnom', 'Troll', 'Goblin', 'Blutelf', 'Draenei', '', '', '', '', '', '', '', '', '', '', 'Worg', '', '', 'Pandare');
	$characters = [];

	// fill member data
	foreach($data['members'] as $member) {
		if(in_array($member['rank'],$ranks,true) && !in_array($member['character']['name'],$hidenames)) {
			$char 								= $member['character'];
			$class 								= $classes[$char['class']-1];
			$characters[$class][$char['name']] 	= $char;
		}
	}

	// generate output
	$output	= '';
	foreach($characters as $class => $chars) {
		if($class!='0') {
			$output .= '<div class="box '.strtolower($class).'">';
			$output .= '<h3>'.$class.'</h3>';
			$output .= '<ul class="charlist">';
			$output .= '<li>';
			foreach($chars as $char) {
				$output .= '<ul class="char">';
				$output .= '<li class="name">'.$char['name'].'</li>';
				$output .= '<li class="achievementpoints">'.$char['achievementPoints'].'</li>';
				$output .= '</ul>';
			}
			$output .= '</li>';
			$output .= '</ul>';
			$output .= '</div>';
		}
	}

	// start output in external file
	$file = 'cache.txt';
	file_put_contents($file,$output);
?>


mal eben kurz gemacht :/

na wenn amn sich mit ner programmiersprache auch lang genug auseinander setzt ist es klar das es kein problem dann ist.

jedoch gibt dein code hier nen Parse error: syntax error, unexpected in zeile 22.
 
jedoch gibt dein code hier nen Parse error: syntax error, unexpected in zeile 22.

Weil deine PHP-Version auf dem Server "alt" ist.

Ersetze
$characters = [];

durch
$characters = array();
 
Zuletzt bearbeitet von einem Moderator:
Weil deine PHP-Version auf dem Server "alt" ist.

Ersetze
$characters = [];

durch
$characters = array();
Also leere Arrays per [] zu initialisieren, kenne ich nur von JavaScript / jQuery. In PHP setzt man leere Arrays AFAIK immer mit array() auf.
 
Also leere Arrays per [] zu initialisieren, kenne ich nur von Javascript / jQuery. In PHP setzt man leere Arrays AFAIK immer mit array() auf.

Geht seit 5.4 auch mit []
Syntaktisch hat sich Einges getan. Du kannst jetzt auch aus Funktionen und methoden Array-Results direkt ausgeben, ohne dass du sie erst in eine Variable casten musst, also bspw echo function()[0]
 
Zuletzt bearbeitet von einem Moderator:
ich möchte dich ja nicht kritisieren, da ich selbst ja noch am anfang bin mit der Programierung,
aber so schnell wie du den Code geschrieben hast, hast einige Fehler wohl übersehen. Hier ist
der nächste:

Warning: Invalid argument supplied for foreach() on line 25
 
Zuletzt bearbeitet von einem Moderator:
Deine PHP Version ist veraltet...
Hier klappt alles 1:1.

das script siehst du hier:
http://roaarrr.com/wow/members.php

(habe am schluss nur ein "echo $output" hinzugefügt.)


Welche PHP Version unterstützt dein Webserver? Dementsprechend würde ich das noch kurz anpassen für dich.
 
Zurück