ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
1439
1439
EMPFEHLEN
-
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 :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
<?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 :1 2 3 4 5 6 7 8 9 10 11 12 13 14
<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?
-
Moin,
du könntest dieses JS-File mit PHP auslesen und die enthaltene Zahl daraus extrahieren.
-
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?
-
Du musst die Zahl aus dem, was du erhältst, erst noch herausfiltern, bspw. per preg_match()
-
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 :1
\d+
Geändert von Sven Mintel (25.01.09 um 00:38 Uhr)
-
Habs jetzt so geändert... nur leider funktioniert es nicht...
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
<?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 :1 2 3 4 5 6 7 8 9
<?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.Geändert von fixxxxxi (25.01.09 um 15:39 Uhr)
-
Warum verarbeitest du die rank.html ....du brauchst die JS-Datei, dort steht nur 1 Zahl drinnen, und zwar die, die die brauchst:
PHP-Code:<?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-Code:<?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);
?>
Ähnliche Themen
-
Dynamisches Javascript nach Ajax Aufruf
Von elwood82 im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 03.07.08, 12:06 -
Dynamisches Formular Javascript/PHP - Dringend
Von zimmermann2006 im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 19.11.06, 21:33 -
Javascript includen
Von Sealtuagn im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 10.08.05, 17:46 -
javascript in asp includen
Von jeene im Forum ASPAntworten: 1Letzter Beitrag: 05.08.04, 12:08 -
dynamisches formular mit PHP und JavaScript
Von RoninRobert im Forum PHPAntworten: 5Letzter Beitrag: 23.12.03, 21:17





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren