Dynamisches PNG - Javascript includen...

fixxxxxi

Erfahrenes Mitglied
Hallo. Ich möchte ein dynamisches PNG erstellen, welches ein Rankingbutton ist.

Der Code für das dynamische Bild, welches ich bis jetzt habe ist folgender:

Code:
<?php
header("Content-type: image/png");

$image = imagecreatefrompng("cb_bg.png");

//imagecolorallocate($image, R, G, B) in HEX values
$font_black = imagecolorallocate($image, 2, 1, 8);
$font_blue = imagecolorallocate($image, 25, 0, 255);

$string = file_get_contents('rank.html');

//($image, fontsize, rightindent, downindent, data, txtcolour)
imagestring($image, 3, 12, 40, $string, $font_blue);  

imagepng($image);
imagedestroy($image);

?>

Nun geht es insbesondere um den $string. Dieser soll nicht den Quellcode der HTML Datei als Text ausgeben, und in dem Bild anzeigen, so wie es bei dem oben dargestellten Code passiert, sondern es soll vielmehr das die Ausgabe bzw. das Ergebniss des JavaScript angezeigt werden.

Der Inhalt der HTML ist folgender:

Code:
<font size=1 color=#FFFFFF>
</br>
</br>	
</br>
</br>
CB 2on2 Rank:
<script language='JavaScript' src='http://clanbase.ggl.com/cbrank.php?cid=1674516&lid=501&type=js'></script>
</br>
CB 3on3 Rank:
<script language='JavaScript' src='http://clanbase.ggl.com/cbrank.php?cid=1674516&lid=865&type=js'></script>
</br>
CB 4on4 Rank:
<script language='JavaScript' src='http://clanbase.ggl.com/cbrank.php?cid=1674516&lid=268&type=js'></script>
</br></font>

Ich habe die Bilder, gewollt.jpg und ungewollt.jpg als Anhang mit hochgeladen, damit man sich besser und schneller vorstellen kann, was ich eigentlich möchte.

Was muss ich wie ändern?
 

Anhänge

  • ungewollt.jpg
    ungewollt.jpg
    21,6 KB · Aufrufe: 466
  • gewollt.jpg
    gewollt.jpg
    27,7 KB · Aufrufe: 468
Genau dies hab ich ja mit file_get_contents probiert. Nur gint er halt nicht eine Zahl bzw. den Inhalt aus, sondern den Quelltext.

Wie würde denn der richtige Quelltext meiner PHP lauten müssen?
 
das problem bei preg_match() ist, das ich bei $pattern einen wert, bzw. eine zeichenfolge angeben muss, nachdem gesucht werden soll. nur ist dieser wert in der javaacript ja auch dynamisch also ändert sich.
 
Das ist kein Problem, denn dazu ist preg_match() ja da.
Ein regulärer Ausdruck($pattern) kann eben mehr, so findet er auch beliebig viele Ziffern am Stück:
Code:
\d+
 
Zuletzt bearbeitet:
Habs jetzt so geändert... nur leider funktioniert es nicht...

Code:
<?php
header("Content-type: image/png");

$image = imagecreatefrompng("cb_bg.png");

//imagecolorallocate($image, R, G, B) in HEX values
$font_black = imagecolorallocate($image, 2, 1, 8);
$font_blue = imagecolorallocate($image, 25, 0, 255);

$string = file_get_contents('rank.html');

preg_match('/(\d+)/', $string, $image);


//($image, fontsize, rightindent, downindent, data, txtcolour)
imagestring($image, 3, 12, 40, $string, $font_blue);  

imagepng($image);
imagedestroy($image);

?>

Ich hab mal versucht das ganze ohne das Bild zu machen, also einfach nur die zahl zu filtern.

Code:
<?php

$str = file_get_contents('rank.html');

preg_match('/(\d+)/', $str, $treffer);

print_r($treffer);

?>

Das Problem ist, das mir nicht das Ergebniss gefiltert wird, sondern die erste Zahl in der HTML angezeigt wird.

Kannst du mir nicht bitte den Quelltext der PHP so anpassen, das es funktioniert? Ich bekomme es einfach nicht hin.
 
Zuletzt bearbeitet:
Warum verarbeitest du die rank.html ....du brauchst die JS-Datei, dort steht nur 1 Zahl drinnen, und zwar die, die die brauchst:

PHP:
<?php
  $file='http://clanbase.ggl.com/cbrank.php?cid=1674516&lid=268&type=js';
  $string=(preg_match('@document.write\((\d+)\)@',file_get_contents($file),$match)) ? $match[1] : 'n/a';
  echo $string;
?>
 
Dank deiner Info t es jetzt genauso wie ich es wollte. THX - dafür! Für alle, die den kompletten Quelltext wollen, poste ich ihn hier.

Link zum dynamischen PNG.

PHP:
<?php
header("Content-type: image/png");

$image = imagecreatefrompng("cb_bg.png");

//imagecolorallocate($image, R, G, B) in HEX values
$font_black = imagecolorallocate($image, 0, 0, 0);

  $file1='http://clanbase.ggl.com/cbrank.php?cid=1674516&lid=501&type=js';
  $string1=(preg_match('@document.write\((\d+)\)@',file_get_contents($file1),$match1)) ? $match1[1] : 'n/a';
  $file2='http://clanbase.ggl.com/cbrank.php?cid=1674516&lid=865&type=js';
  $string2=(preg_match('@document.write\((\d+)\)@',file_get_contents($file2),$match2)) ? $match2[1] : 'n/a';
  $file3='http://clanbase.ggl.com/cbrank.php?cid=1674516&lid=268&type=js';
  $string3=(preg_match('@document.write\((\d+)\)@',file_get_contents($file3),$match3)) ? $match3[1] : 'n/a';
  
//($image, fontsize, rightindent, downindent, data, txtcolour)
imagestring($image, 3, 3, 3, "CLANBASE.COM", $font_black); 
imagestring($image, 2, 3, 20, "To 2on2 Ladder", $font_black);  
imagestring($image, 2, 3, 30, "Rank: $string1", $font_black);
imagestring($image, 2, 3, 45, "To 3on3 Ladder", $font_black); 
imagestring($image, 2, 3, 55, "Rank: $string2", $font_black);  
imagestring($image, 2, 3, 70, "To 4on4 Ladder", $font_black); 
imagestring($image, 2, 3, 80, "Rank: $string3", $font_black);   

imagepng($image);
imagedestroy($image);

?>
 

Anhänge

  • index_orginal.png
    index_orginal.png
    5,4 KB · Aufrufe: 434
Zurück