Jump to content


Photo

Cgi/perl E Html Para Xml


  • Faça o login para participar
6 replies to this topic

#1 MARQUESMARCIO

MARQUESMARCIO

    Normal

  • Usuários
  • 76 posts
  • Sexo:Não informado

Posted 18/11/2005, 11:56

Boas a todos,


Tenho um site em cgi/perl/ html será fácil a reprogramação para cgi/perl/xml/javascript isto era para libertar recursos do servidor e colocar algumas funções no cliente pois o site já leva com 10000 visitas diarias e muitos gigas de banda, e utilizo uma base de dados Postgresql com 5GB.
Poderá ser feita a reprogramação do site para CGI/PERL -> XML/XSL(AJAX)

Preciso de dicas para a reprogramação, será que basta fazer a portabilidade dos blocos de html para xml

Cumps

#2 prix

prix

    Duracell: E Duram, Duram, Duram...

  • Usuários
  • 562 posts
  • Sexo:Não informado
  • Interesses:keep walking ...
    jonny walker

Posted 18/11/2005, 13:29

você quer reprogramar o site de cgi para cgi com xml e javascript

qual a finalidade ?

não é muito aconselhavel misturar programações nao... se vc quer adicionar o xml por causa do ajax, nao eh necessario usar xml para usar ajax, ele funciona perfeitamente cgi+ajax e o javascript eh uma linguagem solta onde tendo html vc pode adicionar o javascript entao não creio q ele venha muito ao caso ...

tende passar mais informações sobre o que você quer fazer.
exemplo:

por que quer xml no site ?
quais os recursos principais que você vai ter ?
quais os meios ou recursos que você utiliza que consomem mais recursos do servidor...

tente passar por partes aqui o que vc tem o que quer melhor o que quer ganhar desempenho para vermos o que podemos aconselhar ... a mudar ou nao... ou melhorar

print join'',(reverse  map{/d([a-z])d/}split/W/,'$5x6@314&60f%3i4#moo^1r2#moo^1p2')," ", pack ("B*",'01110000011001010111001001101100')," ", pack ("B*",'011011010110111101101110011010110110010101111001'), "n";
sleep 5;


E-Mails, topicos ou mensagens privadas não serão respondidas a menos que eu considere uma relevancia/necessidade na mesma.

#3 MARQUESMARCIO

MARQUESMARCIO

    Normal

  • Usuários
  • 76 posts
  • Sexo:Não informado

Posted 19/11/2005, 07:06

Essencialmente a reprogramação seria para adicionar uma funcionalidade.

Sei que é possivel sem xml, mas não tenho ideia de como fazer.
É dificil de explicar, mas no pagina em que as linhas se repetem atraves de variaveis e que cada linha tem uma checkbox, cada uma identificada por uma variavel.

O queria era que por exemplo o usuario seleciona apenas 3 caixas e depois surge o tratamento das 3 variaveis uma de cada vez pertencente a cada uma das checkbox´s, com isto o resultado seria a criação de um ficheiro xml(é obrigatorio que seja xml) com o resultado do tratamento das 3 variavel.

Neste momento apenas é possivel fazer uma de cada vez.

Sei que é um pouco complicado perceber a ideia, mas se tiver duvidas avisa que eu tentarei explicar melhor.

#4 jgcl

jgcl

    João Gabriel C. Laass, Serra/ES

  • Usuários
  • 559 posts
  • Sexo:Não informado
  • Localidade:Serra / ES
  • Interesses:Tudo!

Posted 19/11/2005, 10:06

só colocar o xml dentro das páginas cgi/perl ;)
João Gabriel
Site >> joaogabriel.org
CGiClube.net >> http://www.cgiclube.net
Vitória Perl Mongers >> http://vitoria.pm.org

#5 prix

prix

    Duracell: E Duram, Duram, Duram...

  • Usuários
  • 562 posts
  • Sexo:Não informado
  • Interesses:keep walking ...
    jonny walker

Posted 19/11/2005, 16:08

passe um exemplo de como seria o funcionamento da checkbox que eu vou analisar e te passo o meio mais simples de fazer.

print join'',(reverse  map{/d([a-z])d/}split/W/,'$5x6@314&60f%3i4#moo^1r2#moo^1p2')," ", pack ("B*",'01110000011001010111001001101100')," ", pack ("B*",'011011010110111101101110011010110110010101111001'), "n";
sleep 5;


E-Mails, topicos ou mensagens privadas não serão respondidas a menos que eu considere uma relevancia/necessidade na mesma.

#6 MARQUESMARCIO

MARQUESMARCIO

    Normal

  • Usuários
  • 76 posts
  • Sexo:Não informado

Posted 21/11/2005, 17:07

Desde já agradeço os comentários.
O melhor é irmos por partes.

Como faço um loop com variaveis nesta função:

    $_ = @_[0];
        my $dsc = htmlescape($_->{descr});
        my $fil = htmlescape($_->{filename});
        my $dat = $_->{date};
	my $dag = sprintf("%d",$_->{date} / 86400);
        my $pos = htmlescape($_->{poster});
        my $grp = $_->{groupname}; 
	my $lin = $_->{lines}; # > 1000 ? sprintf("%d",$_->{lines} / 1000) : $_->{lines};
	my $prt = $_->{parts};
	my $oid = $_->{oid};
        my $avgbytes = $lin / $prt;

    print "<file poster=\"$pos\" date=\"$dat\" subject=\"$fil $dsc (1/$prt)\">\n";
    print "<groups><group>$grp</group></groups>\n<segments>\n";

    my %msgids;
    if ( 
        tie (%msgids,  'BerkeleyDB::Btree', -Filename   => "$spool/msgids/$grp/$dag.msgid.db") 
    ){

    my $key = md5_hex($_->{filename}.$_->{descr});
    my $real = 0;
    for (my $i=1; $i<=$prt; $i++) {
        my $msgid = $msgids{$key.$i};
	if ( $msgid ) { 
       my $msgidhtml = $msgid;
     $msgidhtml =~ s/\<//g;
     $msgidhtml =~ s/\>//g;
     printf("<segment bytes=\"%d\" number=\"%d\">%s</segment>\n", $avgbytes, $i, htmlescape($msgidhtml));
     $real++;
        }
    }
    print "</segments></file>\n";

    untie %msgids;
    } #tie
        else{ die "$spool/msgids/$grp/$dag.msgid.db $!";
    }

A variavel atribui um "id" e esse id depois corre na função acima descrita.
é posivel através de cookies fazer a função correr sequencialmente em loop para cada "id".
O resultado era que a função acima apresenta-se uma pagina xml com o resultado loop da função, tudo seguido.
Por exemplo com o resulta de 3 variaveis era +/- este:


	<file poster="Yenc@power-post.org (Windsong)" date="1132337868" subject="Perfect Dark Zero [15/28] - "14-Subway Retrieval - Descent.mp3" yEnc (1/16)">
-
	<groups>
<group>alt.binaries.sounds.mp3.complete_cd</group>
</groups>
-
	<segments>
<segment bytes="179532" number="16">437e1ac9$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256448" number="2">437e1a96$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256583" number="11">437e1ab7$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256451" number="15">437e1ac6$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256104" number="1">437e1a93$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256200" number="3">437e1a9a$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256290" number="4">437e1a9d$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256137" number="7">437e1aa8$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256356" number="8">437e1aac$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256121" number="5">437e1aa0$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256209" number="6">437e1aa4$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256198" number="9">437e1aaf$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256172" number="10">437e1ab3$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256273" number="12">437e1aba$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256300" number="13">437e1abe$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256348" number="14">437e1ac3$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
</segments>
</file>
-
	<file poster="Yenc@power-post.org (Windsong)" date="1132337868" subject="Perfect Dark Zero [15/28] - "14-Subway Retrieval - Descent.mp3" yEnc (1/16)">
-
	<groups>
<group>alt.binaries.sounds.mp3.soundtracks</group>
</groups>
-
	<segments>
<segment bytes="179532" number="16">437e1ac9$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256448" number="2">437e1a96$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256583" number="11">437e1ab7$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256451" number="15">437e1ac6$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256104" number="1">437e1a93$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256200" number="3">437e1a9a$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256290" number="4">437e1a9d$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256137" number="7">437e1aa8$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256356" number="8">437e1aac$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256121" number="5">437e1aa0$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256209" number="6">437e1aa4$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256198" number="9">437e1aaf$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256172" number="10">437e1ab3$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256273" number="12">437e1aba$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256300" number="13">437e1abe$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256348" number="14">437e1ac3$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
</segments>
</file>
-
	<file poster="Yenc@power-post.org (Windsong)" date="1132337868" subject="Perfect Dark Zero [15/28] - "14-Subway Retrieval - Descent.mp3" yEnc (1/16)">
-
	<groups>
<group>alt.binaries.sounds.mp3.video-games</group>
</groups>
-
	<segments>
<segment bytes="179532" number="16">437e1ac9$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256448" number="2">437e1a96$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256583" number="11">437e1ab7$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256451" number="15">437e1ac6$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256104" number="1">437e1a93$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256200" number="3">437e1a9a$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256290" number="4">437e1a9d$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256137" number="7">437e1aa8$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256356" number="8">437e1aac$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256121" number="5">437e1aa0$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256209" number="6">437e1aa4$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256198" number="9">437e1aaf$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256172" number="10">437e1ab3$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256273" number="12">437e1aba$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256300" number="13">437e1abe$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
<segment bytes="256348" number="14">437e1ac3$0$5245$9a6e19ea@unlimited.newshosting.com</segment>
</segments>
</file>


#7 prix

prix

    Duracell: E Duram, Duram, Duram...

  • Usuários
  • 562 posts
  • Sexo:Não informado
  • Interesses:keep walking ...
    jonny walker

Posted 22/11/2005, 19:34

não entendi muito bem sua pergunta... mas se quer um loop geral você poderia tentar algo do tipo...

coloque essa parte do codigo em uma sub-rotina.

sub esse_codigo {
seu codigo entra aqui
}

como você tem um chamado
$_ = @_[0];

basta chamar o codigo assim
&esse_codigo($informacao);

que o @_[0] iria pergar essa informações

dai para fazer um loop vc poderia

for ($i=0; $i > 100; $i++) {
&esse_codigo($informacao);
}

eh uma ideia, mas tente explicar melhor em como você quer q o loop funcione pois pelo o que voce disse nao consegui pegar a logica.

Edição feita por: prix, 22/11/2005, 19:35.

print join'',(reverse  map{/d([a-z])d/}split/W/,'$5x6@314&60f%3i4#moo^1r2#moo^1p2')," ", pack ("B*",'01110000011001010111001001101100')," ", pack ("B*",'011011010110111101101110011010110110010101111001'), "n";
sleep 5;


E-Mails, topicos ou mensagens privadas não serão respondidas a menos que eu considere uma relevancia/necessidade na mesma.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq