Jump to content
php.lv forumi

XML


eT`

Recommended Posts

Tātad gribas izvilkt no viena saita XML datus un pārtaisīt uz bildi.

uz localhost viss iet, bet tur php.ini kaut kas nav kā vajag.

 

<?php
$fonts = "tahoma.ttf";

$xml = simplexml_load_file('http://steamcommunity.com/id/doublet_?xml=1');
$avatar = imagecreatefromjpeg($xml->avatarIcon);

if($xml->onlineState == "online")
{
$result = imagecreatefrompng("background_online.png");
$ot_color = imagecolorexact($result, 107, 161, 207);
imagefttext($result, 8, 0, 52, 29, $ot_color, $fonts, "Online");
}
elseif($xml->onlineState == "in-game")
{
$result = imagecreatefrompng("background_ingame.png");
$ot_color = imagecolorexact($result, 135, 198, 67);
imagefttext($result, 8, 0, 52, 29, $ot_color, $fonts, "In-Game");
imagefttext($result, 8, 0, 52, 41, $ot_color, $fonts, $xml->inGameInfo->gameName);
}
else
{
$result = imagecreatefrompng("background_offline.png");
$ot_color = imagecolorexact($result, 152, 157, 155);
imagefttext($result, 8, 0, 52, 29, $ot_color, $fonts, "Offline");
}

imagecopy($result, $avatar, 9, 9, 0, 0, 32, 32);
imagefttext($result, 8, 0, 52, 17, $ot_color, $fonts, $xml->steamID);

$listnum = 1;
foreach($xml->mostPlayedGames->mostPlayedGame as $mostPlayedGame)
{
if($listnum == 1)
{
	$gameicon = imagecreatefromjpeg($mostPlayedGame->gameIcon);
	imagecopy($result, $gameicon, 169, 9, 0, 0, 32, 32);
}
elseif($listnum == 2)
{
	$gameicon = imagecreatefromjpeg($mostPlayedGame->gameIcon);
	imagecopy($result, $gameicon, 214, 9, 0, 0, 32, 32);
}
else
{
	$gameicon = imagecreatefromjpeg($mostPlayedGame->gameIcon);
	imagecopy($result, $gameicon, 259, 9, 0, 0, 32, 32);
}

imagedestroy($gameicon);
$listnum++;
}

header('Content-Type: image/png');
imagepng($result);

imagedestroy($avatar);
imagedestroy($result);
?>

 

uztaisot var_dump() izmet, ka $xml atgriež booleanu(false)

 

tapēc mazliet atdūros :/

Link to comment
Share on other sites

cURL nav nekāds nezvērs, iemācīties viņu lietot nav nemaz tik sarežģīti un patiesībā ir pat ļoooooti vērtīgi.

 

Vari mēģināt spēlēties ar parastu socket konekciju. http://php.net/manual/en/function.fsockopen.php pirmajā piemērā ir paraugs par datu iegūšanu ar HTTP GET pieprasījumu.

Link to comment
Share on other sites

hmm es mazliet ar cURL pamocījos.

tagad pat izvada, ka esmu online bet vēl nerāda avataru un spēļu ikonas.

 

Kods - http://paste.php.lv/05b850ffaf9c790218aa22e806a0bfe2?lang=php

 

EDIT: pārbaudīju, rāda arī in-game

 

EDIT2: paskatīties vari šeit - http://filmam.lv/steamid/image.php

Edited by eT`
Link to comment
Share on other sites

damn it :D

amm ir kādas alternatīvas, ka viņš paņem bildi no linka un uzliek uz tās bildes virsū?

 

@Kaklz - šis tā vairāk priekš sevis. gribēju pamācīties šo to par bildēm. + tagad zināšu kā watermarkus uzlikt uz bildes ( piem kā draugiem.lv )

Link to comment
Share on other sites

Downloadē bildi tāpat, kā tos datus ar curl, saglabā uz diska ar kaut kādu filename un pēc tam jau lieto lokālo failu. Jebkurā gadījumā ieteiktu tev arī pašu bildi nevis ģenerēt vienmēr dzīvajā, bet uzģenerēt, saglabāt uz diska un reizi stundā pārģenerēt. Ja ir pagājusi mazāk kā stunda, vienkārši rādi to, kas uz diska.

Link to comment
Share on other sites

starp citu Kaklz par tiem watermarkiem: es kkad draugos pamanīju, ka viena jpg bilde ar draugiem logo watermarku bija tik pat labā kvalitātē kā oriģinālā bilde, un faila izmērs tikai mazliet lielāks (tikai tik, cik tas watermarks var iedot klāt), un bildes dimensijas arī tādas pašas. taču tas ir ļoti savādi, jo parasti pārseivojot jpg, lai dabūtu to pašu kvalitāti, faila izmērs neizbēgami palielinās. vai arī līdzīgu izmēru pēc jpg pārseivošanas ar watermarku var dabūt tikai ziedojot kvalitāti. bet kā Jūs tur draugos to dabūjāt gatavu? tb tik kvalitatīvi uzlikt watermarku, gandrīz nemainot faila izmēru!? nez kur man tgd ir tā konkrētā bilde ar/bez draugiem watermark... lol, es pamēģināju to tgd vēlreiz notestēt, bet nu Jums tur vsp vairs neliekās nekāds watermarks!!! bet pirms tam toč tāds gadījums bija! vai varbūt tas bija tikai kkāds izņēmums? ;)

Link to comment
Share on other sites

Hmm idejiski saprotu.

 

<?
function save_image($img,$fullpath){
$ch = curl_init ($img);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata=curl_exec($ch);
curl_close ($ch);
$fp = fopen($fullpath,'x');
fwrite($fp, $rawdata);
fclose($fp);
}
?>

 

šo ielieku atsevišķā failā.

tad tajā image.php failā to failu inklūdoju un veicu

 

save_image($xml->avatarIcon,'http://filmam.lv/steamid/avatar/'); ?

vai

save_image($xml->avatarIcon,'avatar/'); ?

 

un tad tur kur attēloju lietoju

 

$avatar = "avatar/".basename($xml->avatarIcon);

$avatar = imagecreatefromjpeg($avatar);

 

 

ā tomēr beigās mana avajadzētu lai viņš to bildi kaut kur saglabā :D

nu lai piemēram var kādā forumā parakstā likt.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...