Gå til innhold

Anbefalte innlegg

hei, skal lære meg et nytt scriptspråk fra grunnen og har funnet ut at php kommer til å bli det store. men så lurte jeg på om cgi er noe som kan brukes i stedenfor php. er det f.eks. en include funksjon/kode i cgi? :shrug:

 

noen som vil anbefale et cgi program? har dreamwaver nå, men det kan ikke brukes til cgi.

Lenke til kommentar
Videoannonse
Annonse

Eyh! Er du klar over at det på internett finnes flere søkefunksjoner, deriblant google. Hadde kanskje ikke skada å ta en kikk der før du stiller flere überteite spørsmål? Som straff må du bruke notepad i ett år fremover...

 

Include i perl er slik, require "finfil";

Lenke til kommentar

hehe

 

eneste forskjellen mellom perl og php, er at "det ser ut som" det er lettere å bruke php enn perl.

 

Du vet sikkert at det finnes en echo/print funksjon i php, f.eks echo "<b>bla bla bla</b>";

 

den samme har du i perl, print "<b>bla bla</b>";

 

I perl (som som regel brukes til cgi), må all html kode skrives ut med print kommandoer, omtrent som om du hadde hatt hele php-fila i en stor php-tag

 

Ellers kan perl brukes til *mye* mer enn php. det er et mye mer allsidig språk som ikke engang var tiltenkt web-bruk engang da man laget det (Practical Extraction and Report Language) Tekst-parsing er perl's store styrke idag.

 

Jeg tviler sterkt på at php kunne hentet ut nyhetene hw.no framsiden vha html parsing på bare 30 linjer f.eks.

 

(Det er dessuten perl-folk som står bak php)

 

hvis du tar en titt innom http://search.cpan.org og søker på whatever, vil du sikkert finne masse moduler for det du trenger, alt fra å parse mp3, mpeg, gjøre ftp, ssh sessions, hente stuff fra web, xml parsing, bilderedigering, IRC-clienter, og selvsagt *masse* om CGI og HTTP-protokollen. Det er alltid en eller annen luring som har laget en modul for nettopp det du trenger.

 

Og som sagt, syntax messig er selve koden ganske lik php, samme variabler og funksjoner (ligner hvertfall veldig)

 

Hvis du støter på problemer så er det alltids noen her som leser dette forumet daglig (meg hvertfall!)

Lenke til kommentar

cgi har ingen ting med hverken perl eller php å gjøre sånn direkte.

 

cgi er et system på web-servere som gjør at man via browseren kan starte et program (eller et script startet på samme måten som et program) på serveren og få teksten det programmet sender til stdout (konsollet) - frem i browseren som startet dette programmet (via http). Hvis programmet leser inn tekst (cin, scanf ..whatever), kan det være tekst fra f.eks. <form> (get/post -stuff).

 

http://nostdal.net/cgi-bin/ncgi (ncgi er et program skrevet i C/C++)

 

#include <iostream>

int main()
{
using namespace std;
cout << "Content-type: text/html\n\n";
cout << "<HTML>\n";
cout << "<BODY>\n";
cout << "<H1>HELLO WORLD!</H1>\n";
cout << "</BODY>\n";
cout << "</HTML>\n";
cout << endl;
return(0);
}

 

Problemet er at når et slikt program avsluttes -- så er alle data i programmet "glemt". Finnes løsninger for dette seff ..men; php og perl er ofte lettere/bedre egnet for slike ting.

Endret av daysleper
Lenke til kommentar
  • 2 uker senere...
I perl (som som regel brukes til cgi), må all html kode skrives ut med print kommandoer, omtrent som om du hadde hatt hele php-fila i en stor php-tag

Det er vanligvis en god ide å bruke templates i stedet for å legge HTML-koden i sourcen, siden det blir mye ryddigere. Poenget er å forsøke å la logikken (if-setninger, databasekall ol) ligge i Perl-filen, mens HTML-koden og looping over elementer som skal skrives ut legges i template-filen. Jeg har stort sett brukt Template Tookit fra www.template-toolkit.org.

 

Template-systemer kan forøvrig med fordel brukes med PHP også. Jeg foretrekker et som heter Smarty.

Lenke til kommentar
trodde du kunne bruke 'echo' på lik linje med 'print' i perl jeg....

$ perl -e 'echo "test";'
String found where operator expected at -e line 1, near "echo "test""
       (Do you need to predeclare echo?)
syntax error at -e line 1, near "echo "test""
Execution of -e aborted due to compilation errors.

Eller sagt på en annen måte: nei.

Lenke til kommentar
  • 5 måneder senere...

Når vi snakker om forskjeller på PHP og Perl er det jo greit å få med et par ting :

 

- Det flest forbinder med PHP er egentlig Apachemodulen mod_php, den ekte ekvivalenten til denne i Perl verdenen heter mod_perl.

- Dersom en skal skrive virkelig raske perlting for web er mod_perl genialt. mod_perl modulen sørger for at perl interpreteren bygges inn i Apache slik at en request som trenger perl prosessering for å vise resultatet ikke trenger å kalle opp en ekstern prosess (også kalt forking).

 

For Perl finnes det i tillegg til TemplateToolkit som noen nevnte over, en haug forskjellige templatingsystemer, mod_perl sidene har en glimrende gjennomgang av fordeler / ulemper og forskjeller mellom de forskjellige :

mod_perl templating comparison

 

PHP kan kjøres på kommandolinje og fungere som CGI uten å kompileres som apachemodul, men da er mye av hastighetsgevinsten vekk. PHP er heller ikke akkurat beregnet på og utviklet for å være noe særlig mer enn et språk for utvikling av websider. Det originale navnet "Personal Homepage Processor" sier jo litt om det ;)

 

Selv har jeg begynt å leke med en ekstremt kraftig CPAN modul som heter HTML::Mason, det er et templating rammeverk som gjør en hel del geniale ting.. Verd å sjekke ut :

Mason HQ

Lenke til kommentar

Det originale navnet "Personal Homepage Processor" sier jo litt om det

 

Er det ikke "PHP: Hypertext Preprocessor", da? (selv om det og indikerer at det er laget for web).

 

Hadde forresten vært veldig morsomt om noen hadde laget en PHP-kompilator, slik at PHP kan kjøre rett på maskin.

Lenke til kommentar

Det VAR Personal Home Page, men nå er det PHP: Hypertext Preprocessor.

Du KAN kjøre PHP i kommandolinje modus. Ingen kompilering, og det er på ingen måte noe du kan bruke til å skrive noe særlig fornuftig. Men jeg har for eksempel brukt det for å skrive en liten irc sak.

Lenke til kommentar
  • 3 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...