PHP.mk документација

Разлики со други SAPIs

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

features.commandline.differences.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека features.commandline.differences.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
Разлики со други SAPIs

Референца за `features.commandline.differences.php` со подобрена типографија и навигација.

features.commandline.differences.php

Разлики во однос на други SAPIs

Забележителни разлики на CLI SAPI во споредба со други SAPIи:

  • За разлика од CGI SAPI, не се запишуваат заглавја во излезот.

    Иако CGI SAPI обезбедува начин за потиснување на HTTP заглавјата, не постои еквивалентен прекинувач за нивно овозможување во CLI SAPI.

    CLI се стартува во тивок режим по дифолт, иако -q and --no-header прекинувачите се задржани за компатибилност за да може да се користат постари CGI scripts.

    Не ја менува работната директориум на онаа на скриптата. (-C and --no-chdir задржани прекинувачи за компатибилност)

    Пораки за грешки во обичен текст (без HTML форматирање).

  • Постојат одредени php.ini директиви кои се надминати од CLI SAPI бидејќи немаат смисла во шел опкружувања:

    Надминато php.ini directives
    Директива CLI SAPI стандардна вредност Коментар
    html_errors false Стандардно е false, бидејќи може да биде доста тешко да се читаат пораките за грешки во шел опкружувањето кога тие се преполни со неинтерпретирани HTML tags.
    implicit_flush true Во шел опкружување, обично е пожелно излезот, како од print, echo и пријатели, за веднаш да се прикажат, а не да се чуваат во бафер. Сепак, сè уште е можно да се користи баферирање на излезот за одложување или манипулирање со стандардниот излез.
    max_execution_time 0 (неограничено) PHP во шел опкружување има тенденција да се користи за многу поразновидни цели отколку типичните скрипти базирани на веб, и бидејќи тие можат да работат многу долго, максималното време на извршување е поставено на неограничено.
    register_argc_argv true

    Поставувањето на ова на true значи дека скриптите извршени преку CLI SAPI секогаш имаат пристап до argc (број на аргументи предадени на апликацијата) и argv (низа од вистинските аргументи).

    PHP променливите $argc and $argv автоматски се поставуваат на соодветните вредности кога се користи CLI SAPI. Овие вредности може да се најдат и во $_SERVER низата, на пример: $_SERVER['argv'].

    Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

    Присуството на $argv or $_SERVER['argv'] не е сигурна индикација дека скрипта се извршува од командната линија бидејќи тие може да бидат поставени во други контексти кога register_argc_argv е овозможено. Вредноста вратена од php_sapi_name() треба да се провери наместо тоа.

    <?php

    if (php_sapi_name() === 'cli') {
    echo
    "This is being run from the command line!\n";
    }
    output_buffering false

    Иако поставката php.ini е тврдо кодирана на falseсимболот, на пр. Излезно баферирање се достапни.

    max_input_time false

    PHP CLI не поддржува GET, POST или upload на датотеки.

    Забелешка:

    Овие директиви не можат да се иницијализираат со друга вредност од конфигурациската датотека php.ini или сопствена (ако е специфицирана). Ова ограничување е затоа што вредностите се применуваат откако сите конфигурациски датотеки ќе бидат парсирани. Сепак, нивните вредности можат да се променат за време на извршување (иако ова не е разумно за сите од нив, како што се register_argc_argv).

    Забелешка:

    Се препорачува да се постави ignore_user_abort за скрипти од командна линија. Погледнете ignore_user_abort() Користење на PHP од командната линија

  • За полесно работење во шел опкружување, дефинирани се голем број константи за I/O потоци .

  • На CLI SAPI does not ја менува тековната директориjа во директориjата на извршената скрипта.

    Пример #1 Пример кој ја покажува разликата со CGI SAPI:

    <?php
    // Our simple test application named test.php
    echo getcwd(), "\n";
    ?>

    Кога се користи клучниот збор CGI верзија, излезот е:

    $ pwd
    /tmp
    
    $ php -q another_directory/test.php
    /tmp/another_directory
    

    Ова јасно покажува дека PHP ја менува својата тековна директориjа во онаа на извршената скрипта.

    Користејќи го CLI SAPI дава:

    $ pwd
    /tmp
    
    $ php -f another_directory/test.php
    /tmp
    

    Ова овозможува поголема флексибилност при пишување шел алатки во PHP.

    Забелешка:

    На CGI SAPI го поддржува ова CLI SAPI однесување преку -C прекинувач кога се извршува од командна линија.

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.