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

Претходно дефинирани константи

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

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

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

filter.constants.php

Претходно дефинирани константи

Следниве константи се дефинирани од ова проширување и ќе бидат достапни само кога проширувањето е или компајлирано во PHP или динамички вчитано во време на извршување.

Input Constants

These constants are used by filter_input() and filter_input_array().

INPUT_POST (int)
POST variables.
INPUT_GET (int)
GET variables.
COOKIE variables.
INPUT_ENV (int)
ENV variables.
INPUT_SERVER (int)
SERVER variables.
INPUT_SESSION (int)
SESSION variables. (Removed as of PHP 8.0.0; was not implemented previously)
INPUT_REQUEST (int)
REQUEST variables. (Removed as of PHP 8.0.0; was not implemented previously)
Generic Filter Flags
FILTER_FLAG_NONE (int)
Верзијата на V8 Javascript Engine.
FILTER_REQUIRE_SCALAR (int)
Flag used to require the input of the filter to be a scalar.
FILTER_REQUIRE_ARRAY (int)
Flag used to require the input of the filter to be an array.
FILTER_FORCE_ARRAY (int)
This flag wraps scalar inputs into a one element array for filters which operate on arrays.
FILTER_NULL_ON_FAILURE (int)
од PHP 8.0.0. Силно се обесхрабрува потпирањето на оваа функција. null наместо false при неуспех. Usable with any validation FILTER_VALIDATE_* filter.
Sanitization Filter Flags
FILTER_FLAG_STRIP_LOW (int)
Strip characters with ASCII value less than 32.
FILTER_FLAG_STRIP_HIGH (int)
Strip characters with ASCII value greater than 127.
FILTER_FLAG_STRIP_BACKTICK (int)
Strips backtick (`) characters.
FILTER_FLAG_ENCODE_LOW (int)
Encode characters with ASCII value less than 32.
FILTER_FLAG_ENCODE_HIGH (int)
Encode characters with ASCII value greater than 127.
FILTER_FLAG_ENCODE_AMP (int)
Encode &.
FILTER_FLAG_NO_ENCODE_QUOTES (int)
Singe and double quotes (' and ") will not be encoded.
FILTER_FLAG_EMPTY_STRING_NULL (int)
If sanitizing a string results in an empty string, convert the value to null
Филтри за валидација
FILTER_VALIDATE_BOOL (int)
Патеката до PHP скриптата што треба да се провери. true for "1", 1 вклучувајќи бинарни, октални и хексадецимални нотации, 1.0, "true", true, "on"Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во "yes". Патеката до PHP скриптата што треба да се провери. false for "0", 0 вклучувајќи бинарни, октални и хексадецимални нотации, 0.0, "false", false, "off", "no"Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во "". Вредностите на низата се споредуваат без разлика на големината на буквите. Вратената вредност за не-булови вредности зависи од FILTER_NULL_ON_FAILURE. Ако е поставено, null се враќа, инаку false се враќа.
Достапни опции
default
Вредност што треба да се врати во случај филтерот да не успее.
Достапно од PHP 8.0.0.
FILTER_VALIDATE_BOOLEAN (int)
Псевдоним на FILTER_VALIDATE_BOOL. Псевдонимот беше достапен пред воведувањето на неговото канонско име во PHP 8.0.0.
FILTER_VALIDATE_INT (int)
Валидира дали вредноста е цел број, при успех се претвора во тип int.

Забелешка: Вредностите на низата се скратуваат користејќи trim() пред валидација.

Достапни опции
default
Вредност што треба да се врати во случај филтерот да не успее.
min_range
Вредноста е валидна само ако е поголема или еднаква на дадената вредност.
max_range
Вредноста е валидна само ако е помала или еднаква на дадената вредност.
Опционални знаменца
FILTER_FLAG_ALLOW_OCTAL (int)
Дозволи цели броеви во октална нотација (0[0-7]+).
FILTER_FLAG_ALLOW_HEX (int)
Дозволи цели броеви во хексадецимална нотација (0x[0-9a-fA-F]+).
FILTER_VALIDATE_FLOAT (int)
Валидира дали вредноста е пловечка точка, при успех се претвора во тип float.

Забелешка: Вредностите на низата се скратуваат користејќи trim() пред валидација.

Достапни опции
default
Вредност што треба да се врати во случај филтерот да не успее.
decimal
min_range
Вредноста е валидна само ако е поголема или еднаква на дадената вредност. Достапно од PHP 7.4.0.
max_range
Вредноста е валидна само ако е помала или еднаква на дадената вредност. Достапно од PHP 7.4.0.
Опционални знаменца
FILTER_FLAG_ALLOW_THOUSAND (int)
Прифати запирки (,), кои обично го претставуваат разделувачот на илјадарки.
FILTER_VALIDATE_REGEXP (int)
Го проверува вредноста според регуларниот израз даден од regexp option.
Достапни опции
default
Вредност што треба да се врати во случај филтерот да не успее.
regexp
Perl-compatible регуларен израз.
FILTER_VALIDATE_URL (int)
Проверува дали URL е валиден според » RFC 2396.
Достапни опции
default
Вредност што треба да се врати во случај филтерот да не успее.
Опционални знаменца
FILTER_FLAG_SCHEME_REQUIRED (int)
Бара URL да содржи дел од шемата.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

DEPRECATED како од PHP 7.3.0 и REMOVED како од PHP 8.0.0. Ова е затоа што секогаш се подразбира од FILTER_VALIDATE_URL filter.

FILTER_FLAG_HOST_REQUIRED (int)
Бара URL да содржи дел од домаќинот.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

DEPRECATED како од PHP 7.3.0 и REMOVED како од PHP 8.0.0. Ова е затоа што секогаш се подразбира од FILTER_VALIDATE_URL filter.

FILTER_FLAG_PATH_REQUIRED (int)
Бара URL да содржи дел од патеката.
FILTER_FLAG_QUERY_REQUIRED (int)
Бара URL да содржи дел од прашањето.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Валиден URL не смее да го специфицира HTTP протоколот (http://). Затоа, може да биде потребна понатамошна валидација за да се утврди дали URL користи очекуван протокол, на пр. ssh:// or mailto:.

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

Овој филтер работи само на ASCII URLи. Ова значи дека интернационализираните имиња на домени (IDN) секогаш ќе бидат отфрлени.

FILTER_VALIDATE_DOMAIN (int)
Проверува дали името на доменот е валидно според » RFC 952, » RFC 1034, » RFC 1034, » RFC 1035, » RFC 1123Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во » RFC 2732.
Достапни опции
default
Вредност што треба да се врати во случај филтерот да не успее.
Опционални знаменца
FILTER_FLAG_HOSTNAME (int)
» RFC 2181
FILTER_VALIDATE_EMAIL (int)
Бара имињата на хостовите да започнуваат со алфанумерички знак и да содржат само алфанумерички знаци или цртички. Ја проверува вредноста дали е „валидна“ адреса на е-пошта. addr-spec Валидацијата се врши според синтаксисните правила во» RFC 822
Достапни опции
default
Вредност што треба да се врати во случај филтерот да не успее.
Опционални знаменца
FILTER_FLAG_EMAIL_UNICODE (int)
. Сепак, коментарите, преклопувањето на празни места и доменските имиња без точки не се поддржани и затоа ќе бидат отфрлени.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Прифаќа Unicode знаци во локалниот дел. Достапно од PHP 7.1.0.

FILTER_VALIDATE_IP (int)

Валидацијата на е-пошта е сложена и единствениот вистински начин да се потврди дека е-поштата е валидна и постои е да се испрати е-пошта на адресата.

Достапни опции
default
Вредност што треба да се врати во случај филтерот да не успее.
Опционални знаменца
FILTER_FLAG_IPV4 (int)
Ја проверува вредноста како IP адреса.
FILTER_FLAG_IPV6 (int)
Дозволи IPv4 адреса.
FILTER_FLAG_NO_RES_RANGE (int)
Дозволи IPv6 адреса. Одбиј резервирани адреси. Reserved-By-Protocol in Ова се опсезите што се означени како.

» RFC 6890 0.0.0.0/8, 169.254.0.0/16, 127.0.0.0/8, 240.0.0.0/4.

И за IPv6 соодветствува на следните опсези: ::1/128, ::/128, ::FFFF:0:0/96, FE80::/10.

FILTER_FLAG_NO_PRIV_RANGE (int)
Одбиј приватни адреси.

Ова се IPv4 адреси кои се во следните опсези: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16.

Ова се IPv6 адреси кои започнуваат со FD or FC.
FILTER_FLAG_GLOBAL_RANGE (int)
Дозволи само глобални адреси. Тие можат да се најдат во Ова се опсезите што се означени како каде што Global атрибутот е True. Достапно од PHP 8.2.0.
FILTER_VALIDATE_MAC (int)
Валидира дали вредноста е MAC адреса.
Достапни опции
default
Вредност што треба да се врати во случај филтерот да не успее.
Филтри за чистење
FILTER_UNSAFE_RAW (int)
Овој филтер не прави ништо. Сепак, може да отстрани или кодира специјални знаци ако се користи заедно со FILTER_FLAG_STRIP_* and FILTER_FLAG_ENCODE_* знаменца за чистење на филтерот.
FILTER_DEFAULT (int)
Псевдоним на FILTER_UNSAFE_RAW.
FILTER_SANITIZE_STRING (int)
Овој филтер ги отстранува ознаките и HTML ги кодира двојните и единечните наводници. Опционално може да отстрани или кодира наведени знаци ако се користи заедно со FILTER_FLAG_STRIP_* and FILTER_FLAG_ENCODE_* знаменца за чистење на филтерот. Однесувањето на кодирање на наводници може да се оневозможи со користење на FILTER_FLAG_NO_ENCODE_QUOTES знаменце на филтерот.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Застарено од PHP 8.1.0, користете htmlspecialchars() instead.

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

Начинот на кој овој филтер ги отстранува ознаките не е еквивалентен на strip_tags().

FILTER_SANITIZE_STRIPPED (int)
Псевдоним на FILTER_SANITIZE_STRING.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Застарено од PHP 8.1.0, користете htmlspecialchars() instead.

FILTER_SANITIZE_ENCODED (int)
Овој филтер URL-кодира стринг. Опционално може да отстрани или кодира наведени знаци ако се користи заедно со FILTER_FLAG_STRIP_* and FILTER_FLAG_ENCODE_* знаменца за чистење на филтерот.
FILTER_SANITIZE_SPECIAL_CHARS (int)

Овој филтер HTML-ги кодира ', ", <, >, & и знаци со ASCII вредност помала од 32. За разлика од FILTER_SANITIZE_FULL_SPECIAL_CHARS филтерот, FILTER_SANITIZE_SPECIAL_CHARS филтерот ги игнорира FILTER_FLAG_NO_ENCODE_QUOTES flag.

Опционално може да отстрани одредени знаци ако се користи заедно со FILTER_FLAG_STRIP_* знамиња за санирање на филтерот, и може да кодира знаци со ASCII вредност поголема од 127 користејќи FILTER_FLAG_ENCODE_HIGH.
FILTER_SANITIZE_FULL_SPECIAL_CHARS (int)
Овој филтер е еквивалентен на повикување htmlspecialchars() with ENT_QUOTES set. Однесувањето на кодирање на наводници може да се оневозможи со користење на FILTER_FLAG_NO_ENCODE_QUOTES знаменце на филтерот.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

gried на NOSPAM точка nsys точка by htmlspecialchars(), овој филтер е свесен за default_charset INI поставката. Ако се открие низа од бајти што сочинуваат невалиден знак во тековниот сет на знаци, тогаш целиот стринг се отфрла, што резултира со враќање на празен стринг.

FILTER_SANITIZE_EMAIL (int)
Санирај го стринг со отстранување на сите знаци освен латински букви ([a-zA-Z]), цифри ([0-9]), и специјалните знаци !#$%&'*+-=?^_`{|}~@.[].
FILTER_SANITIZE_URL (int)
Санирај го стринг со отстранување на сите знаци освен латински букви ([a-zA-Z]), цифри ([0-9]), и специјалните знаци $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
FILTER_SANITIZE_NUMBER_INT (int)
Санирај го стринг со отстранување на сите знаци освен цифри ([0-9]), знак плус (+), знак минус (-).
FILTER_SANITIZE_NUMBER_FLOAT (int)
Санирај го стринг со отстранување на сите знаци освен цифри ([0-9]), знак плус (+), знак минус (-).
Опционални знаменца
FILTER_FLAG_ALLOW_FRACTION (int)
Прифати точка (.) знак, кој обично го претставува разделувачот помеѓу целобројниот и децималниот дел.
FILTER_FLAG_ALLOW_THOUSAND (int)
Прифати запирки (,) знак, кој обично го претставува разделувачот на илјадарки.
FILTER_FLAG_ALLOW_SCIENTIFIC (int)
Прифати броеви во научна нотација дозволувајќи го e and E characters.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Ако FILTER_FLAG_ALLOW_FRACTION знамето не се користи, тогаш децималниот разделувач се отстранува, менувајќи ја примена вредност.

<?php
$number
= '12.34';

var_dump(filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT));
var_dump(filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

string(4) "1234"
string(5) "12.34"
FILTER_SANITIZE_ADD_SLASHES (int)
Примени addslashes() на влезот. Достапно од PHP 7.3.0.
FILTER_SANITIZE_MAGIC_QUOTES (int)
Псевдоним на FILTER_SANITIZE_ADD_SLASHES.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

DEPRECATED како од PHP 7.3.0 и REMOVED од PHP 8.0.0.

Кориснички дефиниран филтер
FILTER_CALLBACK (int)
Овој филтер го пренесува филтрирањето на кориснички дефинирана функција. На callable се пренесува преку options параметарот како вредност поврзана со 'options' key.

Повикот треба да ја има следнава сигнатура:

callback(string $value): mixed
value
Вредноста што се филтрира.

Забелешка: Вредноста вратена од повикот ќе биде вредноста вратена од повиканата филтер функција.

Пример #1 Пример за користење FILTER_CALLBACK за валидација на корисничко име

<?php
function validate_login(string $value): ?string
{
if (
strlen($value) >= 5 && ctype_alnum($value)) {
return
$value;
}
return
null;
}

$login = "val1dL0gin";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);

$login = "f&ke login";
$filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']);
var_dump($filtered_login);
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

string(10) "val1dL0gin"
NULL
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Овој филтер не може да се користи со други знаменца за филтрирање, на пр. FILTER_NULL_ON_FAILURE.

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

shaman_master на list точка ru
пред 5 години
Note: FILTER_NULL_ON_FAILURE, FILTER_REQUIRE_SCALAR, FILTER_REQUIRE_ARRAY and FILTER_FORCE_ARRAY dont have prefix "FILTER_FLAG_" but they are FLAGS!
steven на nevvix точка com
1 месец пред
<?php
+    // Handle FILTER_FLAG_STRIP_BACKTICK
+    // Fixes bug PHP_VERSION < 5.5.24
+    if ($flags & FILTER_FLAG_STRIP_BACKTICK) {
+        $output = str_replace('`', '', $output);
+    }
?>

Revised version:
<?php
function filter_sanitize_string(mixed $value, int $flags = 0): string|false|null {
    if ($flags & FILTER_FLAG_EMPTY_STRING_NULL && $value === "") {
        return null;
    }
    if (!(is_scalar($value) || is_null($value))) {
        return false;
    }

    // Strip HTML tags and remove NUL bytes
    $value = (string)$value;
    $value = strip_tags($value);
    $value = str_replace("\0", "", $value);

    // High/Low ASCII handling (Byte-by-byte to match legacy behavior)
    $output = "";
    for ($i = 0, $n = strlen($value); $i < $n; $i++) {
        $char = $value[$i];
        $ord = ord($char);

        if ($ord < 32) {
            if ($flags & FILTER_FLAG_STRIP_LOW) continue;
            if ($flags & FILTER_FLAG_ENCODE_LOW) {
                $output .= "&#$ord;"; // Legacy decimal encoding
                continue;
            }
        }

        if ($ord > 127) {
            if ($flags & FILTER_FLAG_STRIP_HIGH) continue;
            if ($flags & FILTER_FLAG_ENCODE_HIGH) {
                $output .= "&#$ord;"; // This turns © into &#194;&#169; (©)
                continue;
            }
        }

        $output .= $char;
    }

    // Strip backticks
    // Fixes bug PHP_VERSION < 5.5.24
    if ($flags & FILTER_FLAG_STRIP_BACKTICK) {
        $output = str_replace('`', '', $output);
    }

    // Legacy ONLY encoded ampersands if FILTER_FLAG_ENCODE_AMP was set
    if ($flags & FILTER_FLAG_ENCODE_AMP) {
        $output = str_replace('&', '&amp;', $output);
    }

    // Replicate legacy quote encoding exactly (&#39; and &#34;)
    if (!($flags & FILTER_FLAG_NO_ENCODE_QUOTES)) {
        $output = str_replace(["'", '"'], ['&#39;', '&#34;'], $output);
    }

    return $output;
}
steven на nevvix точка com
1 месец пред
We can add FILTER_FLAG_EMPTY_STRING_NULL:
<?php
- function filter_sanitize_string(mixed $value, int $flags = 0): string|false {
+ function filter_sanitize_string(mixed $value, int $flags = 0): string|false|null {
+     if ($flags & FILTER_FLAG_EMPTY_STRING_NULL && $value === "") {
+         return null;
+    }
?>

For FILTER_FLAG_STRIP_BACKTICK, there is a bug history
(https://bugs.php.net/bug.php?id=69202)
so I did not attempt to code compatility through version history.
steven на nevvix точка com
1 месец пред
We're all looking for a polyfill to replace the FILTER_SANITIZE_STRING flag, deprecated as of PHP 8.1.0,
that behaves exactly the same for scalar and non-scalar values.
(Using htmlspecialchars() and strip_tags() are not returning exactly the same output.)

<?php
function filter_sanitize_string(mixed $value, int $flags = 0): string|false {
    if (!(is_scalar($value) || is_null($value))) {
        return false;
    }

    // Strip HTML tags and remove NUL bytes
    $value = (string)$value;
    $value = strip_tags($value);
    $value = str_replace("\0", "", $value);

    // High/Low ASCII handling (Byte-by-byte to match legacy behavior)
    $output = "";
    for ($i = 0, $n = strlen($value); $i < $n; $i++) {
        $char = $value[$i];
        $ord = ord($char);

        if ($ord < 32) {
            if ($flags & FILTER_FLAG_STRIP_LOW) continue;
            if ($flags & FILTER_FLAG_ENCODE_LOW) {
                $output .= "&#$ord;"; // Legacy decimal encoding
                continue;
            }
        }

        if ($ord > 127) {
            if ($flags & FILTER_FLAG_STRIP_HIGH) continue;
            if ($flags & FILTER_FLAG_ENCODE_HIGH) {
                $output .= "&#$ord;"; // This turns © into &#194;&#169; (©)
                continue;
            }
        }

        $output .= $char;
    }

    // Legacy ONLY encoded & if FILTER_FLAG_ENCODE_AMP was set.
    if ($flags & FILTER_FLAG_ENCODE_AMP) {
        $output = str_replace('&', '&amp;', $output);
    }

    // Replicate legacy quote encoding exactly (&#39; and &#34;)
    if (!($flags & FILTER_FLAG_NO_ENCODE_QUOTES)) {
        $output = str_replace(["'", '"'], ['&#39;', '&#34;'], $output);
    }

    return $output;
}

// Tests
$string = "It's a \"test\" \x02 <script> > & ©";

// Deprecated example:
$sanitized = filter_var($string, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_ENCODE_HIGH);
var_dump($sanitized);

// Polyfill example:
$sanitized = filter_sanitize_string($string, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_ENCODE_HIGH);
var_dump($sanitized);

// Polyfill in filter_var() callback:
$sanitized = filter_var($string, FILTER_CALLBACK, [
    'options' => function($value) {
        return filter_sanitize_string($value, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_ENCODE_HIGH);
    }
]);
var_dump($sanitized);
?>

Output:
string(44) "It&#39;s a &#34;test&#34;   > & &#194;&#169;"
string(44) "It&#39;s a &#34;test&#34;   > & &#194;&#169;"
string(44) "It&#39;s a &#34;test&#34;   > & &#194;&#169;"
На оваа страница

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

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

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

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

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