function nutzen.

EddieG

Erfahrenes Mitglied
hi,
habe eine php erweiterung installiert.
und möchte die natürlich nutzen.
im folgenden code soll ein Mapname mti desen Farben ausgegeben werden.
PHP:
    $map = $info->Map; 
echo $map->Name;
so wird erin schwarz ausgegebe udn wird nciht gefärbt mit dieser function soll es aber anscheind gehen
PHP:
    $map = $info->Map; 

function getColoredMapName($mapName)
{
    $mapWithColors = "";
    $hasColorChanged = 0;
    $isAlwaysGray = 0;
    
    // Parses the original map name and adds the appropriate font tags according to the special characters we find
    // This can easily be replaced with span tags instead of font tags for XHTML compliance.
    for($i = 0; $i < strlen($mapName); $i++)
    {
        $curChar = substr($mapName, $i, 1);
        if(ord($curChar) < 32)
        {
            if(!$isAlwaysGray)
            {
                if($hasColorChanged)
                    $mapWithColors .= "</font>";
                
                switch(ord($curChar))
                {
                    // Light Green
                    case 1:
                        $mapWithColors .= "<font color=\"#B7FC78\">";
                        $hasColorChanged = 1;
                        break;
                    
                    // Light Blue
                    case 2:
                        $mapWithColors .= "<font color=\"#A7B7F8\">";
                        $hasColorChanged = 1;
                        break;
                    
                    // Dark Green
                    case 3:
                        $mapWithColors .= "<font color=\"#09E100\">";
                        $hasColorChanged = 1;
                        break;
                    
                    // Light Green (same as #1)
                    case 4:
                        $mapWithColors .= "<font color=\"#B7FC78\">";
                        $hasColorChanged = 1;
                        break;
                    
                    // Gray and all following characters will remain gray even if another color tag is set
                    case 5:
                        $mapWithColors .= "<font color=\"#7C7C7C\">";
                        $hasColorChanged = 1;
                        $isAlwaysGray = 1;
                        break;
                    
                    // White
                    case 6:
                        $mapWithColors .= "<font color=\"#FCFCF0\">";
                        $hasColorChanged = 1;
                        break;
                    
                    // Red
                    case 7:
                        $mapWithColors .= "<font color=\"#FC0000\">";
                        $hasColorChanged = 1;
                        break;
                        
                    default:
                        break;
                }
            }
        }
        else
            $mapWithColors .= $curChar;
    }
    
    // Closes the last <font> tag and returns
    if($hasColorChanged)
    {
        $mapWithColors .= "</font>";
        return $mapWithColors;
    }
    
    return $mapName;
}
echo $map->Name;
aber irgendwie geht es trotzdem nicht habe das gefühl das ich es irgendwie falsch versuch auszulesen.
 
Ich bin nicht so der üble pro in php aber könnte es daran liegen das du " in " hast? also nich ' in " ?
vieleicht is es aber auch gewolltwegen der farbe weis nich bin erst anfänger.
 
also
PHP:
$map = $info->Map;
echo $map->Name;

sind beides keine Methodenaufrufe, sondern einfach Membervariablen einer Klasse... von der im geposteten Quellcode auch nichts zu sehen ist. Generell finde ich irgendwie unverständich was nun wirklich nicht geht. Die Funktion überprüft scheinbar nur einen STring und ersetzt eben ein Chars gegen HTML.
 
hier is der komplette code
PHP:
<?php 
$pfad = preg_replace("/[^a-zA-Z0-9.,\-_]/","",$_GET['path']);  

?> 
<?php 
    chdir('replays/'); // <-- die zeile hier einfügen in deinem script 
   
    $info = php_bw_load_replay(getcwd()."/".$pfad); // <-- die zeile ändern in deinem script 

    // rest ist gleich geblieben ... 
$colHTML = dechex($player->ColorHTML);
    if(strlen($colHTML) < 6) {
        $padding = str_repeat("0", 6 - strlen($colHTML));
        $colHTML = $padding . $colHTML; 
		};
    $map = $info->Map; 
$v = $info->Version;

    if($info->ErrorCode != 0) 
        die("Could not load the replay ! Message : " . $info->ErrorString); 
    echo date("F j, Y, G:i ",$info->GameDate); 
        echo "<br>Number of Players :"    . $info->NumPlayer; 
    echo "<br>matchup :"    . $info->Matchup;  
    echo"<br>Spiel Dauer: "; echo date("i:s",$info->GameLength);echo ' min'; 
    echo"<br>Type: " .$info->GameType; 
	function detect_version($timestamp)
    {
        $versions = array
        (
            '1.15'  => 1179223200, // may 15th, 2007
            '1.14'  => 1154383200, // august 1st, 2006
            '1.13f' => 1137625200, // january 19th, 2006
            '1.13e' => 1126562400, // september 13th, 2005
            '1.13d' => 1126044000, // september 7th, 2005
            '1.13c' => 1124748000, // august 23rd, 2005
            '1.13b' => 1123711200, // august 11th, 2005
            '1.13'    => 1120082400, // june 30th, 2005
            '1.12b' => 1109265420, // february 24th, 2005
            '1.12'     => 1108601100, // february 17th, 2005
            '1.11b' => 1086115140, // june 1st, 2004
            '1.11'     => 1083197460, // april 29th, 2004
            '1.10'     => 1049234400, // april 2nd, 2003
            '1.09b' => 1014666240, // february 25th, 2002
            '1.09'     => 1012960860, // february 6th, 2002
            '1.08b'    => 990400320, // may 21st, 2001
            '1.08'     => 990150540 // may 18th, 2001
        );
    
        foreach($versions as $version => $versiondate)
        {
            if ($timestamp >= $versiondate)
                return($version);
        }
        
        return('&lt; '.$version);
	
	    }
echo"<br> Version Lautet: ". $v->VersionName;


    echo "<br>Gamename : " . $info->GameName; 
    echo "<br>Players info : <br>"; 
   
    foreach($info->Players as $player) 
		        echo $player->Name . " : " . "<img src='img/".$player->RaceName.".png'>". "   ("."<font style='color:$player->ColorName'>" .$player->ColorName."</font>".")   ". $player->APM . "APM." . " Starting at Location ". $player->StartingLocation12 ."<br>"; 
			
	function getColoredMapName($mapName)
{
    $mapWithColors = "";
    $hasColorChanged = 0;
    $isAlwaysGray = 0;
    
    // Parses the original map name and adds the appropriate font tags according to the special characters we find
    // This can easily be replaced with span tags instead of font tags for XHTML compliance.
    for($i = 0; $i < strlen($mapName); $i++)
    {
        $curChar = substr($mapName, $i, 1);
        if(ord($curChar) < 32)
        {
            if(!$isAlwaysGray)
            {
                if($hasColorChanged)
                    $mapWithColors .= "</font>";
                
                switch(ord($curChar))
                {
                    // Light Green
                    case 1:
                        $mapWithColors .= "<font color=\"#B7FC78\">";
                        $hasColorChanged = 1;
                        break;
                    
                    // Light Blue
                    case 2:
                        $mapWithColors .= "<font color=\"#A7B7F8\">";
                        $hasColorChanged = 1;
                        break;
                    
                    // Dark Green
                    case 3:
                        $mapWithColors .= "<font color=\"#09E100\">";
                        $hasColorChanged = 1;
                        break;
                    
                    // Light Green (same as #1)
                    case 4:
                        $mapWithColors .= "<font color=\"#B7FC78\">";
                        $hasColorChanged = 1;
                        break;
                    
                    // Gray and all following characters will remain gray even if another color tag is set
                    case 5:
                        $mapWithColors .= "<font color=\"#7C7C7C\">";
                        $hasColorChanged = 1;
                        $isAlwaysGray = 1;
                        break;
                    
                    // White
                    case 6:
                        $mapWithColors .= "<font color=\"#FCFCF0\">";
                        $hasColorChanged = 1;
                        break;
                    
                    // Red
                    case 7:
                        $mapWithColors .= "<font color=\"#FC0000\">";
                        $hasColorChanged = 1;
                        break;
                        
                    default:
                        break;
                }
            }
        }
        else
            $mapWithColors .= $curChar;
    }
    
    // Closes the last <font> tag and returns
    if($hasColorChanged)
    {
        $mapWithColors .= "</font>";
        return $mapWithColors;
    }
    
    return $mapName;
} 
    echo "<br>Mapname : <font color=\"#$mapName\>" . $map->Name."</font>"; 
$teams = $info->Teams;
$anzahl_teams = count($teams);
$race = $info->Players;
$hoechste_spieleranzahl = 0;
foreach($teams as $team) {
    $hoechste_spieleranzahl = (count($team) > $hoechste_spieleranzahl) ? count($team) : $hoechste_spieleranzahl;
}

echo "<table>";

// Kopf mit den Teamnamen / -nummern
echo "<tr>";
for($teamnummer = 1; $teamnummer <= $anzahl_teams; $teamnummer++) {
    echo "<td width='150'>Team ".$teamnummer."</td>";
}

// pro Spieler jeweils von allen Teams den Spieler mit diesem Index ausgeben
for($i = 0; $i < $hoechste_spieleranzahl; $i++) {
    echo "<tr>";
    for($teamnummer = 0; $teamnummer < $anzahl_teams; $teamnummer++) {
	
        echo "<td>".$teams[$teamnummer][$i].":". "<img src='img/".$race->RaceName .".png'>".".".$race->APM . "APM." ."</td>";
    }
    echo "</tr>";
}
echo "</table>";  
?> 


 <?php
				 $map = php_bw_jpg_from_rep_dim("C:\\xampp\\htdocs\\reps\\replay", getcwd()."\\".$pfad, getcwd()."/img/test.jpg", 256, RENDER_NOTHING, 90);
    if($map->ErrorCode == 0)
        echo "<img src='replays/img/test.jpg' width='256' height='256' />";
    else
        echo "Error : " . $map->ErrorString;
		?>
				<?php
				 $map = php_bw_jpg_from_rep_dim("C:\\xampp\\htdocs\\reps\\replay", getcwd()."\\".$pfad, getcwd()."/img/test.jpg", 1024, RENDER_NOTHING, 90);
    if($map->ErrorCode == 0)
        echo "<br><a href=replays/img/test.jpg> Groß Ansicht </a>";
    else
        echo "Error : " . $map->ErrorString;
		?>
ich bekomms net gebacken
 
PHP:
 echo "<br>Mapname : <font color=\"#$mapName\>" .  getColoredMapName($map->Name)."</font>";

So in etwa? Die Funktion zum Bunt machen auf den Map-namen anwenden?
 
Zurück