Forum otwartych umysłów
Forum dla wszystkich i o wszystkim, a zwłaszcza dla tych co mają otwarty umysł.

| FAQ |  Szukaj |  Użytkownicy |  Grupy |  Mapa Google |
| Rejestracja |  Zaloguj |  Album |

Poprzedni temat «» Następny temat
Własne obrazki sygnaturek - XML
Autor Wiadomość
Paszczak000 



Znak zodiaku:
panna

Zaproszone osoby: 54
Pomógł: 92 razy
Wiek: 22
Dołączył: 27 Lut 2004
Posty: 6671
Skąd: Łódź
Wysłany: 2006-08-23, 22:18   Własne obrazki sygnaturek - XML

Dane z sysinfo można umieszczać na własnych obrazkach lub w inny sposób. W profilu użytkownika znajduje się link do pliku XML, który możecie wykorzystać to tych celów. Wszelkie nowości i uaktualnienia dotyczące parsera XML będą wypisywanie w tym poście. Wszelakie niejasności proszę zgłaszać również tutaj.

Przykładowe dane przekazywane:
Kod:
<userdata>
    <profile>
<id>1</id>
<displayname>Paszczak Desktop</displayname>
<join_date>1152965348</join_date>
<www>http://paszczak.no-ip.org</www>
<total_uptime>18576920</total_uptime>
<system>mandriva</system>
<cpu_name>AMD Athlon(tm) XP 2600+</cpu_name>
<system_build>2.6.17-5mdv</system_build>
</profile>
    <last_session>
<current_uptime>883128</current_uptime>
<total_memory>515672</total_memory>
<free_memory_max>99704</free_memory_max>
<free_memory_min>5000</free_memory_min>
<total_swap>1124508</total_swap>
<free_swap_max>905152</free_swap_max>
<free_swap_min>858256</free_swap_min>
<cpu_speed_max>2087</cpu_speed_max>
<cpu_speed_min>2087</cpu_speed_min>
<cpu_cache>256</cpu_cache>
<cpu_count>1</cpu_count>
<cpu_bogomips>4215</cpu_bogomips>
<start_uptime>1178803699</start_uptime>
<updates>133</updates>
<last_update>1179686831</last_update>
</last_session>
</userdata>



Dostępny jest również Prosty Parser XML.
Dla bardziej zaawansowanych użytkowników konfiguracja i użytkowanie powinno być jasne. Poniżej mała dokumentacja i pomoc w korzystaniu dla początkujących użytkowników.

Zmienne do wykorzystania w skrypcie to:
Kod:

$xml[id]
$xml[displayname]
$xml[join_date]
$xml[last_update]
$xml[system]
$xml[uptime]
$xml[best_uptime]
$xml[best_data_uptime]
$xml[total_memory]
$xml[free_memory]
$xml[total_swap]
$xml[free_swap]
$xml[cpu]
$xml[cache]
$xml[bogomips]
$xml[link]


Plik parser.php musi zostać umieszczony na serwerze obsługującym PHP wraz z plikiem graficznym do sygnaturki oraz czcionką jakiej chcecie używać. Na samym początku w pliku parser.php ustawiamy swoje ID np:
Kod:
$uid = 1;

Poniżej napisu:
Kod:
// Set color, size, font and image

ustawiamy nazwę naszego obrazka z sygnaturką, scieżkę do czcionki (np: /home/paszczak000/public_html/arial.ttf), wielkości czcionek oraz ich kolor podany w sytemie RGB (np: 134, 89, 15).
Niżej znajduje się kod odpowiedzialny za przystosowanie sekundowej wersji uptime do takiej, która jest czytelna dla człowieka. Na samym dole znajduje się szereg funkcji ImageTTFText, które wypiszą stosowne informacje na naszej sygnaturce.
_________________
  
 
 
 
 
lesiulodz 
Bobek
1337 h4x0r


Znak zodiaku:
baran

Pomógł: 1 raz
Wiek: 19
Dołączył: 22 Sty 2007
Posty: 19
Skąd: 042
Wysłany: 2007-01-22, 18:33   

nie łapę, zrobiłem wszysko i nic się nie dzieję
http://35lo.tykers.net/~mint/parser.php
_________________
 
 
 
Paszczak000 



Znak zodiaku:
panna

Zaproszone osoby: 54
Pomógł: 92 razy
Wiek: 22
Dołączył: 27 Lut 2004
Posty: 6671
Skąd: Łódź
Wysłany: 2007-01-22, 22:32   

Edytuj plik parser.php
Znajdź:
Kod:
$font_file = 'comic.ttf'; // please put here font file name

Zamień na:
Kod:
$font_file = './comic.ttf'; // please put here font file name

Czyli przed nazwą czcionki dodaj ./
_________________
 
 
 
 
lesiulodz 
Bobek
1337 h4x0r


Znak zodiaku:
baran

Pomógł: 1 raz
Wiek: 19
Dołączył: 22 Sty 2007
Posty: 19
Skąd: 042
Wysłany: 2007-01-23, 07:37   

hmm nadal nic wysłałem 3 pliki na serwer *.php, *.jpg, *ttf. oto mój zmieniony plik php:
Kod:

<?php
/***************************************************************************
 *                            parser.php
 *                            -------------------
 *   begin                : Tuesday, January 16, 2007
 *   copyright            : (C) 2006 Irek Kubicki <kontakt@ixdude.com>
 *   www                  : www.thecamels.org
 *   version              : 2.0
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

// Please set your user ID here
$user_id = 113; // please specify your account user id.
$image_type = 'jpg'; // please set only 'png', 'gif' or 'jpeg' value. otherwise 'jpg' image type will be used.

//
// DO NOT EDIT BELOW THIS LINE
//

// trying to open socket connection
if ( !( $sock_file = fsockopen( 'sysinfo.thecamels.org', 80, $errno, $errstr, 1 ) ) )
{
    // kill script running
    die( 'Cannot read xml data.' );
}
else
{
    // sending headers to a host through the socket
    fwrite( $sock_file, "GET /signature.php?type=xml&userid=$user_id HTTP/1.1\r\nHost: sysinfo.thecamels.org\r\nConnection: Close\r\n\r\n" );

    // null contents
    unset( $xml_contents );
    while ( !feof( $sock_file ) )
    {
        // write content to a string variable
        $xml_contents .= fgets( $sock_file, 1024 );
    }
       
    fclose( $sock_file );
    if ( preg_match( '#<profile>(.*?)</profile>#is', $xml_contents ) )
    {
        // remove content headers
        $xml_contents = trim( preg_replace( '#^(.*?)<profile>(.*?)</profile>(.*?)$#is', '\\2', $xml_contents ) );
    }
    else
    {
        // kill script running
        die( 'Cannot read xml data.' );
    }
}

// get all xml objects
preg_match_all( '#<(([a-z0-9_](?<!>))+)>((.(?<!<))*?)</\\1>#i', $xml_contents, $xml_data );

$xml_variables = array( );
foreach( $xml_data[1] as $id => $variable_name )
{
    $xml_variables[ strtoupper( $variable_name ) ] = $xml_data[3][$id];
}

if ( !sizeof( $xml_variables ) )
{
    die( 'Cannot create xml variables.' );
}
// to make sure proper image type selected
$image_type = ( @in_array( $image_type, array( 'png', 'gif', 'jpeg' ) ) ) ? $image_type : 'jpeg';

// create image header
header( 'Content-type: image/' . $image_type );

// source image
$image = imagecreatefrompng( './uptime.jpg' );
$font_file = './comic.ttf'; // please put here font file name

// font heights
$font_size = 12;
$font_size1 = 9;

// font color
$color = imagecolorallocate( $image, 0, 0, 0 );

// USERNAME
ImageTTFText( $image, $font_size, 0, 100, 20, $color, $font_file, $xml_variables['USER_DISPLAYNAME'] );
// USER SYSTEM
ImageTTFText( $image, $font_size1, 0, 100, 40, $color, $font_file, ucwords($xml_variables['SYSTEM']) );
// USER UPTIME
ImageTTFText( $image, $font_size1, 0, 180, 40, $color, $font_file, $xml_variables['CONVERT_UPTIME'] );
// USER LAST UPDATE
ImageTTFText( $image, $font_size1, 0, 100, 55, $color, $font_file, 'Last update: ' . $xml_variables['USER_LAST_UPDATE'] );
// USER CPU
ImageTTFText( $image, $font_size1, 0, 100, 70, $color, $font_file, 'CPU: ' . $xml_variables['CPU_FREQ'] . ' MHz' );
// SYSINFO URL
ImageTTFText( $image, $font_size1, 0, 175, 95, $color, $font_file,  base64_decode('c3lzaW5mby50aGVjYW1lbHMub3Jn') );

switch ( $image_type )
{
    case 'gif': imagegif( $image ); break;
    case 'png': imagepng( $image ); break;
    default: imagejpeg( $image, '', 90 ); break;
}

// image handler destruction
imagedestroy( $image );

?>

z tego co rozumiem to przy $user_id powinin być numer zz mojego profilu oraz przy $image_type rodzaj obrazka i $image = imagecreatefrompng( './uptime.jpg' ); nazwa obrazka
$font_file = './comic.ttf'; i nazwa czcionki, chyba wszysko dobrze zrobiłem ?
_________________
 
 
 
Paszczak000 



Znak zodiaku:
panna

Zaproszone osoby: 54
Pomógł: 92 razy
Wiek: 22
Dołączył: 27 Lut 2004
Posty: 6671
Skąd: Łódź
Wysłany: 2007-01-23, 07:52   

Jeżeli na serwer wrzuciłeś plik uptme.jpg to funkcja:
Kod:
$image = imagecreatefrompng( 'uptime.jpg' );

nie zadziała :]
Albo zmień na obrazek typu png albo zmień funkcję na:
Kod:
imagecreatefromjpeg
_________________
 
 
 
 
lesiulodz 
Bobek
1337 h4x0r


Znak zodiaku:
baran

Pomógł: 1 raz
Wiek: 19
Dołączył: 22 Sty 2007
Posty: 19
Skąd: 042
Wysłany: 2007-01-23, 12:07   

nadal nic może ten plik php jest źle napisany ? :nastyface:
_________________
 
 
 
Paszczak000 



Znak zodiaku:
panna

Zaproszone osoby: 54
Pomógł: 92 razy
Wiek: 22
Dołączył: 27 Lut 2004
Posty: 6671
Skąd: Łódź
Wysłany: 2007-01-23, 14:34   

Wątpię :]
http://paszczak.no-ip.org...pars/parser.php
Może Twój serwer nie obsługuje jakiś funkcji czy coś.
_________________
 
 
 
 
lesiulodz 
Bobek
1337 h4x0r


Znak zodiaku:
baran

Pomógł: 1 raz
Wiek: 19
Dołączył: 22 Sty 2007
Posty: 19
Skąd: 042
Wysłany: 2007-01-23, 21:20   

ok to co potrzebuje ?
_________________
 
 
 
Paszczak000 



Znak zodiaku:
panna

Zaproszone osoby: 54
Pomógł: 92 razy
Wiek: 22
Dołączył: 27 Lut 2004
Posty: 6671
Skąd: Łódź
Wysłany: 2007-01-24, 00:47   

Biblioteki GD na pewno, no i inne cudeńka.
_________________
 
 
 
 
lesiulodz 
Bobek
1337 h4x0r


Znak zodiaku:
baran

Pomógł: 1 raz
Wiek: 19
Dołączył: 22 Sty 2007
Posty: 19
Skąd: 042
Wysłany: 2007-01-24, 08:53   

wgrałem biblioteki GD z PNG supportem i dalej nie działa, nie wiem co jest
gdy wywołam źródło strony w przeglądarce dostaje takie coś :

Kod:
<br />
<b>Fatal error</b>:  Call to undefined function:  imagecreatefrompng() in <b>/home/ftp/users/mint/public_html/parser.php</b> on line <b>81</b><br />

linijka z ścieżką do obrazka
_________________
 
 
 
jedre 
Bobek


Znak zodiaku:
panna

Pomógł: 1 raz
Wiek: 21
Dołączył: 30 Maj 2007
Posty: 8
Skąd: Myślibórz
Wysłany: 2007-05-30, 12:17   simplexml

Swoją drogą jeśli patrzeć od strony technicznej na parser xml to średnio mi się on podoba, zwłaszcza wyciąganie danych z pliku xml.
Może zaproponował bym coś takiego jeśli chodzi o userów z dostępem do PHP5.

Kod:
<?
/**
 * @author Krzysztof Wolniak
 * @copyright 2007
 */

if(!($xml = simplexml_load_file('http://sysinfo-project.pl/signature349.xml'))) die('Nie mozna otworzyc pliku XML.');

$data = array();

//name
$data['displayname'] = simplexml_import_dom($xml->profile->displayname);
//system
$data['system'] = simplexml_import_dom($xml->profile->system);
//aktualny uptime
$data['current_uptime'] = simplexml_import_dom($xml->last_session->current_uptime);
//CPU in GHz
$data['cpu_speed_max'] = round(simplexml_import_dom($xml->last_session->cpu_speed_max)/1000, 2);
//RAM in MB
$data['total_memory'] = ceil(simplexml_import_dom($xml->last_session->total_memory)/1024);
//FREE RAM in MB
$data['free_memory_max'] = round(simplexml_import_dom($xml->last_session->free_memory_max)/1024, 2);

//uptime - pełne dni
$data['days'] = floor(($data['current_uptime']/3600)/24);
//uptime - pełne godziny
$data['hours'] = floor($data['current_uptime']/3600);
//uptime - pełne minuty
$data['minuts'] = floor(($data['current_uptime']-($data['hours']*3600))/60);
?>


Powyższy kod zawiera odpowiednie formatowanie np dotyczące uptime, czyli obliczanie dni itd. (element który każdy może sam dostosować)
Wykorzystałem SimpleXML które domyślnie jest dołączane do PHP5, niestety niedostępne w PHP4.

Taka mała sugestia :)
_________________

Sex, Drugs and PHP
jedre blog

 
 
 
jedre 
Bobek


Znak zodiaku:
panna

Pomógł: 1 raz
Wiek: 21
Dołączył: 30 Maj 2007
Posty: 8
Skąd: Myślibórz
Wysłany: 2007-05-30, 12:27   

lesiulodz napisał/a:
wgrałem biblioteki GD z PNG supportem i dalej nie działa, nie wiem co jest
gdy wywołam źródło strony w przeglądarce dostaje takie coś :
[...]
linijka z ścieżką do obrazka


Niestety PHP nie może znaleźć funkcji imagecreatefrompng czyli albo nie masz wgranej biblioteki GD albo nie masz obsługi PNG, najlepiej stworz plik PHP o takie zawartości:

<?php
phpinfo();
?>

i sprawdź zainstalowane składniki :)
_________________

Sex, Drugs and PHP
jedre blog

 
 
 
Paszczak000 



Znak zodiaku:
panna

Zaproszone osoby: 54
Pomógł: 92 razy
Wiek: 22
Dołączył: 27 Lut 2004
Posty: 6671
Skąd: Łódź
Wysłany: 2007-05-30, 13:40   Re: simplexml

jedre napisał/a:
Swoją drogą jeśli patrzeć od strony technicznej na parser xml to średnio mi się on podoba, zwłaszcza wyciąganie danych z pliku xml.
Może zaproponował bym coś takiego jeśli chodzi o userów z dostępem do PHP5.

Przyda się :) Niestety nie każdy serwer ma jeszcze PHP5.
_________________
 
 
 
 
qbs 
Bobek
maruda



Znak zodiaku:
skorpion

Pomógł: 7 razy
Wiek: 26
Dołączył: 05 Lut 2006
Posty: 187
Skąd: Wrocław
Wysłany: 2007-05-31, 21:24   

a tymbardziej nie kazdy ma simpleXML (np moj localhost)
czy moglbys z tego kodu zrobic paczuszke? wrzuce wowczas na stronke
_________________

ixdude.com
 
 
jedre 
Bobek


Znak zodiaku:
panna

Pomógł: 1 raz
Wiek: 21
Dołączył: 30 Maj 2007
Posty: 8
Skąd: Myślibórz
Wysłany: 2007-06-01, 14:32   

qbs napisał/a:
a tymbardziej nie kazdy ma simpleXML (np moj localhost)

Bez przesady, php5 zwłaszcza na localhoscie to chyba żaden problem :)
W kompiluj simpla i gra gitara. Zresztą on jest chyba domyślnie w PHP5 :?

qbs napisał/a:
czy moglbys z tego kodu zrobic paczuszke? wrzuce wowczas na stronke

Powyższy kod ma mały błąd w obliczeniach (u siebie już poprawiłem).

Jak tylko znajdę chwilę przerobie go na zmienne i spakuje :)

To jak działa kodzik z moją sygnaturka można podejrzeć tutaj: http://jedre.net/syg/syg.php
_________________

Sex, Drugs and PHP
jedre blog

 
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać załączników na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group

Hosting zapewnia www.netlook.pl
Dyskutuj na Forum