cvs: phpdoc-sv /chapters tutorial.xml

From: Date: Sun, 28 Jul 2002 17:11:50 +0000
Subject: cvs: phpdoc-sv /chapters tutorial.xml
Groups: php.doc.sv 
Request: Send a blank email to doc-sv+get-8@lists.php.net to get a copy of this message
jome Sun Jul 28 13:11:50 2002 EDT Added files: /phpdoc-sv/chapters tutorial.xml Log: New translation. Some proofread needed.

Index: phpdoc-sv/chapters/tutorial.xml +++ phpdoc-sv/chapters/tutorial.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <chapter id="tutorial"> <title>En enkel lektion i PHP</title> <para> Här följer en enkel lektion i vilken vi vill visa det mest grundläggande i PHP. Texten behandlar bara skapandet av dynamiska webbsidor även om PHP är kapabelt till mycket mer. Se kapitlet <link linkend="intro-whatcando">Vad kan PHP göra?</link> för mer information. </para> <para> Webbsidor som behandlas av PHP-motorn fungerar precis som vanliga HTML-sidor och du kan skapa och editera dem på samma sätt som med vanliga HTML-sidor. </para> <sect1 id="tutorial.requirements"> <title>Vad behöver jag?</title> <para> Den här texten förutsätter att du har en server med PHP-stöd installerad och aktiverad samt att alla filer som har filtillägget <filename>.php</filename> behandlas av PHP. På de flesta servrar är detta standard-tillägget för PHP-filer, men fråga din systemadministratör om du inte är säker. Om din server har stöd för PHP behöver du inte göra någonting mer, skapa bara dina <filename>.php</filename>-filer och lägg dem i din webbkatalog och sedan tar webbservern och PHP-motorn hand om resten. Det finns ingen anledning att kompilerra något eller installera några extra verktyg. Föreställ dig PHP-filer som vanliga HTML-filer med en serie av magiska taggar som låter dig för massor av saker. </para> </sect1> <sect1 id="tutorial.firstpage"> <title>Din första PHP-sida</title> <para> Skapa en fil och döp den till <filename>hello.php</filename>, lägg den sedan i din webbkatalog. Innehållet i filen ska vara följande: </para> <para> <example> <title>Vårt första PHP-script: <filename>hello.php</filename></title> <programlisting role="php"> <![CDATA[ <html> <head> <title>PHP Test</title> </head> <body> <?php echo "Hello World<p>"; ?> </body> </html> ]]> </programlisting> <para> Utdatan från det här scriptet kommer bli: <screen role="html"> <![CDATA[ <html> <head> <title>PHP Test</title> </head> <body> Hello World<p> </body> </html> ]]> </screen> </para> </example> </para> <para> Notera att PHP-scriptet inte fungerar på samma sätt som ett CGI-script. Filen behöver inte vara exekverbar eller skilja sig från vanliga HTML-filer på något sätt var det gäller rättigheter eller ägarskap. Du kan tänka dig PHP-filen som en vanlig HTML-fil fast med ett antal specialtaggar med vilka du kan utföra mycket intressanta saker. </para> <para> Det här programmet är egentligen så simpelt att du inte skulle behöva PHP för dess funktion. Allt scriptet gör är att visa texten <literal>Hello World</literal> genom att anropa PHP-funktionen <function>echo</function>. </para> <para> Om du prövar det här exemplet och det inte skriver ut något, eller du blir tillfrågad om du vill ladda ner filen, eller om du helt enkelt ser hela filen som vanlig text är det risk att din webbserver inte har PHP inlagt. Du kan då fråga din administratör, om han kan installera det åt dig genom att läsa kapitlet som behandlar <link linkend="installation">installation</link>. Om du vill utveckla PHP-script lokalt behöver du <ulink url="&url.php.downloads;">ladda ner</ulink> PHP. Du kan utveckla dina script på vilket operativ system som helst, om du installerar en webbserver som fungerar med PHP. </para> <para> Poängen med scriptet är att demonstrera hur PHP-taggar fungerar. I det här exemplet använde vi <literal>&lt;?php</literal> för att inleda PHP-koden. Sedan skrev vi vår kod och avslutade med <literal>?&gt;</literal>. Du kan utan problem växla mellan HTML- och PHP-kod hur mycket du vill i ditt dokument. </para> </sect1> <sect1 id="tutorial.useful"> <title>Något användbart</title> <para> Nu ska vi göra något lite mer användbart än det tidigare. Vi ska kontrollera vilken webbläsare besökaren av webbsidan använder. För att göra det undersöker vi "user agent"-strängen som skickas till webbservern av webbläsaren som en del av HTTP-förfrågan. Den informationen finns lagrad i en <link linkend="language.variables">variabel</link>. Variabler inleds i PHP alltid med ett dollar-tecken. Variabeln vi behöver nu är <varname>$_SERVER["HTTP_USER_AGENT"]</varname>. </para> <note> <title>PHP Autoglobals-notering</title> <para> <link linkend="reserved.variables.server">$_SERVER</link> är en speciell reserverad variabel i PHP som innehåller all webbserverinformation. Den typen av variabel kallas för en "autoglobal". Läs mer under sektionen <link linkend="language.variables.superglobals">Autoglobals</link> (även kallade superglobals). Dessa specialvariabler introducerades i version 4.1.0 av PHP. Förut användes istället <varname> $HTTP_*_VARS</varname>-arrayer såsom t.ex. <varname> $HTTP_SERVER_VARS</varname>. Trots att anvädningen av dessa variabler inte rekommenderas finns de fortfarande kvar. </para> </note> <para> För att skriva ut variabeln, skriver vi helt enkelt: </para> <para> <example> <title>Skriva ut en variabel (Array element)</title> <programlisting role="php"> <![CDATA[ <?php echo $_SERVER["HTTP_USER_AGENT"]; ?> ]]> </programlisting> <para> A sample output of this script may be: <screen role="html"> Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) </screen> </para> </example> </para> <para> Det finns många olika <link linkend="language.types">typer</link> av variabler i PHP. I ovanstående exempel skrev vi ut ett element från en <link linkend="language.types.array">array</link>. Arrayer kan vara väldigt användbara. </para> <para> <varname>$_SERVER</varname> är bara en av de variabler som automatiskt finns tillgängliga i PHP. En lista på alla återfinns i kapitlet <link linkend="reserved.variables">Reserverade variabler</link>, eller så kan du skapa en lista med hjälp av följande PHP-kod: </para> <para> <example> <title>Visa alla fördefinerade variabler med <function>phpinfo</function></title> <programlisting role="php"> <![CDATA[ <?php phpinfo(); ?> ]]> </programlisting> </example> </para> <para> Om du tittar på den här filen i din webbläsare kommer du se en sida full av information om PHP samt en lista med de variabler som finns tillgängliga. </para> <para> Du kan ha fler PHP-kommandon inom en PHP-tagg och skapa små block av kod som gör mer än bara skriver ut text. Om vi till exempel skulle vilja kontrollera om användaren kör Internet Explorer skulle vi kunna göra så här: </para> <para> <example> <title>Exempel på hur man använder <link linkend="control-structures">kontrollstrukturer</link> och <link linkend="functions">funktioner</link></title> <programlisting role="php"> <![CDATA[ <?php if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) { echo "You are using Internet Explorer<br />"; } ?> ]]> </programlisting> <para> Ovanstående script skulle t.ex. kunna generera följande: <screen role="html"> <![CDATA[ You are using Internet Explorer<br /> ]]> </screen> </para> </example> </para> <para> Här ovan introducerade vi ett par nya begrepp. Det finns bland annat en <link linkend="control-structures.if">if</link>-sats. Om du är bekant med den grundläggande syntaxen i C bör det här se logiskt ut. Om du inte kan C eller något språk med en liknande syntax som den ovan bör du antagligen införskaffa en PHP-bok för nybörjare och läsa åtminstone de första kapitlen. Alternativt kan du läsa <link linkend="langref">Språkreferens</link>-delen av manualen. En förteckning över PHP-böcker finner du på adressen <ulink url="&url.php.books;">&url.php.books;</ulink>. </para> <para> Det andra begreppet vi nu introducerat är funktionsanropet till <function>strstr</function>. <function>strstr</function> är en inbyggd funktion i PHP som söker i en sträng efter en annan sträng, i det här fallet letar vi efter <literal>"MSIE"</literal> inuti <varname>$_SERVER["HTTP_USER_AGENT"]</varname>. Om strängen hittas returnerar funktionen &true; och om den inte hittas returneras &false;. Om funktionen returnerar &true; blir även <link linkend="control-structures.if">if</link>-satsen &true; och därmed körs PHP-koden som omsluts av dess "måstaggar", det vill säga { och }. Om inte, körs inte PHP-koden inom nämnda. Skapa gärna egna <link linkend="control-structures.if">if</link>-satser som även kan innehålla <link linkend="control-structures.else">else</link>, och bekanta dig med funktioner som <function>strtoupper</function> och <function>strlen</function>. Dess sidor i manualen innehåller alla exempel på hur funktionerna används. </para> <para> Vi ska nu gå ännu längre och demonstrera hur du kan växla mellan PHP och HTML mitt i ett PHP-block: </para> <para> <example> <title>Att växla mellan PHP och HTML</title> <programlisting role="php"> <![CDATA[ <?php if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) { ?> <h3>strstr must have returned true</h3> <center><b>You are using Internet Explorer</b></center> <?php } else { ?> <h3>strstr must have returned false</h3> <center><b>You are not using Internet Explorer</b></center> <?php } ?> ]]> </programlisting> <para> Det här scriptet skulle t.ex. kunna skriva ut följande: <screen role="html"> <![CDATA[ <h3>strstr must have returned true</h3> <center><b>You are using Internet Explorer</b></center> ]]> </screen> </para> </example> </para> <para> Istället för att använda PHP-funktionen echo för att skriva ut något, växlade vi till HTML-läge och skrev ut vanlig HTML. Observera dock att logiken i scriptet fortfarande finns kvar, bara ett av HTML-blocken visas för användaren beroende på om <function>strstr</function> returnerade &true; eller &false;; Med andra ord om strängen <literal>MSIE</literal> hittades eller inte. </para> </sect1> <sect1 id="tutorial.forms"> <title>Skapa formulär</title> <para> Av PHP's alla finesser är en av de mest kraftfulla dess hantering av HTML-formulär. Grunden är att förstå att varje element i ett HTML-formulär blir tillgängligt i ditt PHP-script. Läs gärna kapitlet om <link linkend="language.variables.external">Externa variabler i PHP</link> för mer information om hur man använder formulär med PHP. Här är ett exempel med HTML-formulär: </para> <para> <example> <title>Ett enkelt HTML-formulär</title> <programlisting role="html"> <![CDATA[ <form action="action.php" method="POST"> Your name: <input type="text" name="name" /> Your age: <input type="text" name="age" /> <input type="submit"> </form> ]]> </programlisting> </example> </para> <para> Det är inget speciellt med det här formuläret. Det är ett vanligt HTML-formulär utan några special-taggar. När användaren fyller i det här formuläret och trycker på Skicka anropas <filename>action.php</filename>. I den filen skulle du kunna ha något liknande följande: </para> <para> <example> <title>Skriva ut data från ett formulär</title> <programlisting role="php"> <![CDATA[ Hi <?php echo $_POST["name"]; ?>. You are <?php echo $_POST["age"]; ?> years old. ]]> </programlisting> <para> A sample output of this script may be: <screen role="html"> <![CDATA[ Hi Joe. You are 22 years old. ]]> </screen> </para> </example> </para> <para> Det borde vara uppenbart vad ovanstående gör. Det är inte mer med det. Variablerna <varname>$_POST["name"]</varname> och <varname>$_POST["age"]</varname> definerar automatiskt åt dig av PHP. Tidigare använde vi autoglobalen <varname>$_SERVER </varname>, nu använde vi istället autoglobalen <link linkend="reserved.variables.post">$_POST</link> som innehåller alla POST-data. Notera att <emphasis>metoden</emphasis> i HTML-formuläret är satt till POST. Om vi istället skulle använt metoden <emphasis>GET</emphasis> skulle formulär-datan finnas i autoglobalen <link linkend="reserved.variables.get">$_GET</link>. Du kan också använda <link linkend="reserved.variables.request"> $_REQUEST</link> om du inte bryr dig om varifrån din data kommer. Den innehåller en mix av GET-, POST-, COOKIE-, och FILE-data. Se även funktionen <function>import_request_variables</function>. </para> </sect1> <sect1 id="tutorial.oldcode"> <title>Använda gammal kod i nyare versioner av PHP</title> <para> Nu när PHP har växt och blivit ett populärt scriptspråk har det medfört att det finns många källor till PHP-kod på internet som du kan använda i dina egna script. För det mesta har utvecklarna av PHP försökt att göra det bakåt-kompatibelt så att script skrivna i äldre versioner av PHP ska kunna köras utan förändringar i nyare versioner, tyvärr är det inte alltid så idealiskt utan några förändringar behövs oftast. </para> <para> Två av de viktigaste av de senaste förändringarna som påverkar äldre kod är: <itemizedlist> <listitem> <simpara> Du rekommenderas inte längre att använda de äldre <varname>$HTTP_*_VARS</varname>-arrayerna (som behövde deklareras som globala om de användes i en funktion). Följande <link linkend="language.variables.superglobals">autoglobala arrayer</link> introducerades i PHP 4.1.0: <varname>$_GET</varname>, <varname>$_POST</varname>, <varname>$_COOKIE</varname>, <varname>$_SERVER</varname>, <varname>$_ENV</varname>, <varname>$_REQUEST</varname>, and <varname>$_SESSION</varname>. De äldre <varname>$HTTP_*_VARS</varname>-arrayerna, t.ex. $HTTP_POST_VARS, existerar fortfarande och har gjort det sen PHP 3. </simpara> </listitem> <listitem> <simpara> Externa variabler registreras inte längre med automatik i det globala "variablscopet". Med andra ord, från PHP <ulink url="&url.php.release4.2.0;">4.2.0</ulink> har PHP-direktivet <link linkend="ini.register-globals">register_globals</link> satts till <emphasis>off</emphasis> som standard i &php.ini;. Du bör istället använda de autoglobaler som nämnts ovan för att komma åt datan. Äldre script, böcker och lektioner kan bygga på att <link linkend="ini.register-globals">register_globals</link> är påslaget. Om så är fallet kan du, t.ex. med adressen <literal>http://www.example.com/foo.php?id=42</literal> använda <varname>$_GET['id']</varname> istället för <varname>$id</varname> för att komma åt värdet på id. <varname>$_GET['id']</varname> sätts oavsett om <link linkend="ini.register-globals">register_globals</link> är påslaget eller inte. </simpara> </listitem> </itemizedlist> För flera detaljer om dessa förändringar, se kapitlet om <link linkend="language.variables.predefined">fördefinerade variabler</link> och länkarna däri. </para> </sect1> <sect1 id="tutorial.whatsnext"> <title>Vad händer nu?</title> <para> Med det du nu vet bör du kunna förstå det mesta av manualen och även många exempelscript som finns tillgängliga i exempelrakivet. Du kan också hitta andra exempel under länksektionen på adressen <ulink url="&url.php.links;">&url.php.links;</ulink>. </para> </sect1> </chapter> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->
« previous php.doc.sv (#8) next »