Alternativ

Från Wiki.linux.se
Version från den 3 september 2024 kl. 14.55 av Admin (diskussion | bidrag) (Skapade sidan med '== Kommandoradsalternativ == Listan över kommandoradsalternativ som tillhandahålls av PHP-binärfilen kan alltid kontrolleras genom att köra PHP med -h-växeln: php [alternativ] [-f] <fil> [--] [args...] php [alternativ] -r <kod> [--] [args...] php [alternativ] [-B <begin_kod>] -R <kod> [-E <end_kod>] [--] [args...] php [alternativ] [-B <begin_kod>] -F <fil> [-E <end_kod>] [--] [args...] php [alternativ] -- [args...] php [alternativ] -a -a...')
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

Kommandoradsalternativ

Listan över kommandoradsalternativ som tillhandahålls av PHP-binärfilen kan alltid kontrolleras genom att köra PHP med -h-växeln:

 php [alternativ] [-f] <fil> [--] [args...]
 php [alternativ] -r <kod> [--] [args...]
 php [alternativ] [-B <begin_kod>] -R <kod> [-E <end_kod>] [--] [args...]
 php [alternativ] [-B <begin_kod>] -F <fil> [-E <end_kod>] [--] [args...]
 php [alternativ] -- [args...]
 php [alternativ] -a
 -a               Kör interaktivt
 -c <sökväg>|<fil> Sök efter php.ini-filen i denna mapp
 -n               Ingen php.ini-fil kommer att användas
 -d foo[=bar]     Definiera INI-post foo med värdet 'bar'
 -e               Generera utökad information för debugger/profiler
 -f <fil>         Tolka och kör <fil>.
 -h               Denna hjälp
 -i               PHP-information
 -l               Syntaxkontroll endast (lint)
 -m               Visa inbyggda moduler
 -r <kod>         Kör PHP <kod> utan att använda skripttaggar <?..?>
 -B <begin_kod>   Kör PHP <begin_kod> före behandling av inmatningslinjer
 -R <kod>         Kör PHP <kod> för varje inmatningslinje
 -F <fil>         Tolka och kör <fil> för varje inmatningslinje
 -E <end_kod>     Kör PHP <end_kod> efter att ha behandlat alla inmatningslinjer
 -H               Dölj eventuella överförda argument från externa verktyg.
 -S <addr>:<port> Kör med inbyggd webbserver.
 -t <dokrot>      Ange dokumentrot <dokrot> för inbyggd webbserver.
 -s               Utgång HTML syntax markerad källa.
 -v               Versionsnummer
 -w               Utgångskälla med borttagna kommentarer och blanksteg.
 -z <fil>         Ladda Zend-tillägg <fil>.
 args...          Argument som överförs till skriptet. Använd -- args när det första argumentet börjar med - eller skriptet läses från stdin
 --ini            Visa konfigurationsfilnamn
 --rf <namn>      Visa information om funktion <namn>.
 --rc <namn>      Visa information om klass <namn>.
 --re <namn>      Visa information om tillägg <namn>.
 --rz <namn>      Visa information om Zend-tillägg <namn>.
 --ri <namn>      Visa konfiguration för tillägg <namn>.

Kommandoradsalternativ

Alternativ Långt alternativ Beskrivning
-a --interactive Kör PHP interaktivt. För mer information, se avsnittet om Interaktivt skal.
-b --bindpath Bind sökväg för externt FASTCGI-serverläge (endast CGI).
-C --no-chdir Ändra inte till skriptets katalog (endast CGI).
-q --no-header Tyst läge. Undertryck HTTP-headerutmatning (endast CGI).
-T --timing Mät skriptets exekveringstid upprepade gånger (endast CGI).
-c --php-ini Anger antingen en katalog för att leta efter php.ini, eller en anpassad INI-fil (som inte behöver heta php.ini), t.ex.:
 
 $ php -c /custom/directory/ my_script.php
 $ php -c /custom/directory/custom-file.ini my_script.php
 

Om detta alternativ inte anges, letar PHP efter php.ini i standardplatserna.

-n --no-php-ini Ignorera php.ini helt.
-d --define Sätt ett anpassat värde för någon av de konfigurationsdirektiv som tillåts i php.ini. Syntaxen är:
 -d configuration_directive[=value]

Exempel #1: Exempel på att använda -d för att ställa in en INI-inställning

 
 # Utelämnande av värdedelen kommer att ställa in det givna konfigurationsdirektivet till "1"
 $ php -d max_execution_time
     -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
 string(1) "1"
 # Genom att skicka en tom värdedel kommer konfigurationsdirektivet att ställas in på ""
 $ php -d max_execution_time=
     -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
 string(0) ""
 # Konfigurationsdirektivet kommer att ställas in på vad som helst som skickas efter tecknet '='
 $ php -d max_execution_time=20
     -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
 string(2) "20"
 
-e --profile-info Aktivera utökad informationsläge, för att användas av en debugger/profiler.
-f --file Tolka och kör den angivna filen. -f är valfritt och kan utelämnas - det räcker med att bara ange filnamnet för att köra den.
-h och -? --help och --usage Visa en lista med kommandoradsalternativ med enradiga beskrivningar av vad de gör.
-i --info Anropar phpinfo() och skriver ut resultaten. Om PHP inte fungerar korrekt, är det lämpligt att använda kommandot php -i och se om några felmeddelanden skrivs ut före eller istället för informationstabellerna. Observera att vid användning av CGI-läget är utdata i HTML och därför mycket stor.
-l --syntax-check Tillhandahåller ett bekvämt sätt att utföra enbart en syntaxkontroll på den angivna PHP-koden. Vid framgång skrivs texten "No syntax errors detected in <filnamn>" till standardutdata och shell-returkoden är 0. Vid fel skrivs texten "Errors parsing <filnamn>" ut förutom det interna tolkningsfelmeddelandet och shell-returkoden sätts till -1.
-m --modules Exempel #2: Skriva ut inbyggda (och laddade) PHP- och Zend-moduler
 $ php -m
 [PHP Modules]
 xml
 tokenizer
 standard
 session
 posix
 pcre
 overload
 mysql
 mbstring
 ctype
 [Zend Modules]
-r --run Möjliggör körning av PHP som inkluderas direkt på kommandoraden. PHP-start- och sluttaggarna (<?php och ?>) behövs inte och kommer att orsaka ett tolkfel om de finns med.

Observera: Det måste tas hänsyn till när denna form av PHP används för att inte kollidera med kommandoradsvariabelsubstitution som görs av skalet.

Exempel #3: Få ett syntaxfel när du använder dubbla citattecken

 
 $ php -r "$foo = get_defined_constants();"
 PHP Parse error:  syntax error, unexpected '=' in Command line code on line 1
 Parse error: syntax error, unexpected '=' in Command line code on line 1
 

Problemet här är att sh/bash utför variabelsubstitution även när dubbla citattecken används. Eftersom variabeln $foo sannolikt inte är definierad, expanderas den till ingenting, vilket resulterar i att koden som skickas till PHP för körning faktiskt läser:

 
 $ php -r " = get_defined_constants();"
 

Det korrekta sättet skulle vara att använda enkla citattecken. Variabler i enkla citattecken expanderas inte av sh/bash.

Exempel #4: Använda enkla citattecken för att förhindra skalets variabelsubstitution

 
 $ php -r '$foo = get_defined_constants(); var_dump($foo);'
 array(370) {
   ["E_ERROR"]=>
   int(1)
   ["E_WARNING"]=>
   int(2)
   ["E_PARSE"]=>
   int(4)
   ["E_NOTICE"]=>
   int(8)
   ["E_CORE_ERROR"]=>
   [...]
 }
 

Om ett annat skal än sh/bash används, kan ytterligare problem uppstå - om lämpligt, bör en bugg rapport öppnas på » https://github.com/php/php-src/issues. Det är fortfarande lätt att stöta på problem när du försöker använda variabler (skal eller PHP) i kommandoradskod, eller använda backslashes för att undvika problem, så var mycket försiktig när du gör detta. Du har blivit varnad!

Observera: -r är tillgängligt i CLI SAPI, men inte i CGI SAPI.

Observera: Detta alternativ är endast avsett för mycket enkel kod, så vissa konfigurationsdirektiv (såsom auto_prepend_file och auto_append_file) ignoreras i detta läge.

-B --process-begin PHP-kod att köra före behandling av stdin.
-R --process-code PHP-kod att köra för varje inmatningsrad.

Det finns två speciella variabler tillgängliga i detta läge: $argn och $argi. $argn kommer att innehålla raden som PHP bearbetar för tillfället, medan $argi kommer att innehålla radnumret.

-F --process-file PHP-fil att köra för varje inmatningsrad.
-E --process-end PHP-kod att köra efter att alla inmatningsrader har bearbetats.

Exempel #5: Använda alternativen -B, -R och -E för att räkna antalet rader i ett projekt.

 
 $ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Total Lines: $l\n";'
 Total Lines: 37328
 
-S --server Startar inbyggd webbserver.
-t --docroot Anger dokumentroten för den inbyggda webbservern.
-s --syntax-highlight och --syntax-highlighting Visar färgmarkerad källkod.

Detta alternativ använder den interna mekanismen för att tolka filen och skriver en HTML-färgad version av den till standardutgång. Observera att allt det gör är att generera ett block av [...] HTML-taggar, inga HTML-huvuden.

-v --version Exempel #6: Använda -v för att få SAPI-namnet och versionen av PHP och Zend
 
 $ php -v
 PHP 5.3.1 (cli) (built: Dec 11 2009 19:55:07)
 Copyright (c) 1997-2009 The PHP Group
 Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
 
-w --strip Visar källkod med borttagna kommentarer och blanksteg.

Observera: Detta alternativ fungerar inte tillsammans med -r-alternativet.

-z --zend-extension Ladda Zend-tillägg. Om endast ett filnamn anges, försöker PHP ladda detta tillägg från den aktuella standardbibliotekssökvägen på ditt system (vanligtvis /etc/ld.so.conf på Linux-system, till exempel). Genom att ange ett filnamn med en absolut sökväg kommer inte systemets bibliotekssökväg att användas. Ett relativt filnamn som inkluderar kataloginformation kommer att instruera PHP att försöka ladda tillägget relativt till den aktuella katalogen.
--ini Visa konfigurationsfilnamn och skannade kataloger.

Exempel #7 --ini-exempel

 
 $ php --ini
 Configuration File (php.ini) Path: /usr/dev/php/5.2/lib
 Loaded Configuration File:         /usr/dev/php/5.2/lib/php.ini
 Scan for additional .ini files in: (none)
 Additional .ini files parsed:      (none)
 
--rf --rfunction Visa information om den angivna funktionen eller klassmetoden (t.ex. antal och namn på parametrarna).

Detta alternativ är endast tillgängligt om PHP kompilerades med Reflection-stöd.

Exempel #8 grundläggande --rf-användning

 
 $ php --rf var_dump
 Function [ <internal> public function var_dump ] {
   - Parameters [2] {
     Parameter #0 [ <required> $var ]
     Parameter #1 [ <optional> $... ]
   }
 }
 
--rc --rclass Visa information om den angivna klassen (lista över konstanter, egenskaper och metoder).

Detta alternativ är endast tillgängligt om PHP kompilerades med Reflection-stöd.

Exempel #9 --rc-exempel

 
 $ php --rc Directory
 Class [ <internal:standard> class Directory ] {
   - Constants [0] {
   }
   - Static properties [0] {
   }
   - Static methods [0] {
   }
   - Properties [0] {
   }
   - Methods [3] {
     Method [ <internal> public method close ] {
     }
     Method [ <internal> public method rewind ] {
     }
     Method [ <internal> public method read ] {
     }
   }
 }
 
--re --rextension Visa information om det angivna tillägget (lista över php.ini-alternativ, definierade funktioner, konstanter och klasser).

Detta alternativ är endast tillgängligt om PHP kompilerades med Reflection-stöd.

Exempel #10 --re-exempel

 
 $ php --re json
 Extension [ <persistent> extension #19 json version 1.2.1 ] {
   - Functions {
     Function [ <internal> function json_encode ] {
     }
     Function [ <internal> function json_decode ] {
     }
   }
 }
 
--rz --rzendextension Visa konfigurationsinformation för det angivna Zend-tillägget (samma information som returneras av phpinfo()).
--ri --rextinfo Visa konfigurationsinformation för det angivna tillägget (samma information som returneras av phpinfo()). Kärnkonfigurationsinformationen är tillgänglig med "main" som tilläggsnamn.

Exempel #11 --ri-exempel

 
 $ php --ri date
 date
 date/time support => enabled
 "Olson" Timezone Database Version => 2009.20
 Timezone Database => internal
 Default timezone => Europe/Oslo
 Directive => Local Value => Master Value
 date.timezone => Europe/Oslo => Europe/Oslo
 date.default_latitude => 59.930972 => 59.930972
 date.default_longitude => 10.776699 => 10.776699
 date.sunset_zenith => 90.583333 => 90.583333
 date.sunrise_zenith => 90.583333 => 90.583333
 


Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/features.commandline.options.php

PHP Funktioner


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp.se som har sponsrat Linux.se med webserver.