Sobes.tech
Junior

Ի՞նչ ցանցային ֆունկցիաներ կան PHP-ում։

sobes.tech AI

Պատասխան AI-ից

PHP- ում շատ ցանցային ֆունկցիաներ կան, որոնք ընդգրկում են ցանցի տարբեր ասպեկտներ։ Ամենատարածվածներն են՝

  • «Սոկետներ» բաժինը (Sockets):
    • socket_create(): Ստեղծում է սոկետ։
    • socket_connect(): Կապ հաստատում հեռավոր հոստի հետ։
    • socket_bind(): Սոկետը կապում է հասցե և պորտ։
    • socket_listen(): Հետևում է մուտքային կապերին։
    • socket_accept(): Ընդունում է մուտքային կապը։
    • socket_read(): Կարդում է տվյալները սոկետից։
    • socket_write(): Գրում է տվյալները սոկետին։
    • socket_close(): Փակում է սոկետը։
    • socket_last_error(): Վերադարձնում է վերջին սխալի կոդը։
    • socket_strerror(): Վերադարձնում է սխալի նկարագրությունը։
<?php
// Սոկետի ստեղծում և կապ հաստատում օրինակ
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() ձախողվեց. պատճառը՝ " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "Սոկետը ստեղծվեց։\n";
}

$result = socket_connect($socket, 'example.com', 80);
if ($result === false) {
    echo "socket_connect() ձախողվեց. պատճառը՝ " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "Կապ հաստատվեց։\n";
}
socket_close($socket); // Սոկետի փակումը
?>
  • «URL» բաժինը՝
    • file_get_contents(): Կարդում է ֆայլի պարունակությունը տողում (կարող է օգտագործվել HTTP-ի համար):
    • file_put_contents(): Գրում է տվյալները ֆայլում (կարող է օգտագործվել HTTP POST-ի համար):
    • get_headers(): Վերադարձնում է HTTP պատասխանների գլխագրերը։
    • parse_url(): Տեղաբաշխում է URL-ը բաղադրիչների։
    • http_build_query(): Ստեղծում է հարցման տող։
  • «DNS» բաժինը՝
    • gethostbyname(): Վերադարձնում է հոստի IPv4 հասցեն։
    • gethostbyaddr(): Վերադարձնում է IP հասցեի համար հոստի անունը։
    • getmxrr(): Ստանում է էլեկտրոնային փոստի փոխանակման գրառումները (MX)։
  • «cURL» բաժինը (պահանջում է cURL ընդարձակում): Առաջարկում է բազմաֆունկցիոնալ հաճախորդային մեխանիզմ HTTP հարցումների կատարելու համար։ Ունեցում է ֆունկցիաներ կուկիերի, պրոքսի, նույնականացման և այլն։
    • curl_init(): Սեսիայի cURL-ի սկզբում։
    • curl_setopt(): Կարգավորում է cURL-ի ընտրանքները։
    • curl_exec(): Կատարում է cURL-ի սեսիան։
    • curl_close(): Փակում է cURL-ի սեսիան։
<?php
// Օրինակ՝ cURL-ով էջի պարունակությունը ստանալու
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Վերադարձնում է որպես տող

$output = curl_exec($ch);

if ($output === false) {
    echo "cURL սխալ: " . curl_error($ch);
} else {
    echo $output;
}

curl_close($ch);
?>
  • «Stream» (հոսքեր) բաժինը՝ PHP հոսքերը ապահովում են միացյալ ինտերֆեյս տարբեր ռեսուրսների համար, ներառյալ ցանցային սոկետները և HTTP-ն։
    • stream_socket_client(): Բացում է հաճախորդային ցանցային կապ։
    • stream_socket_server(): Ստեղծում է սերվերային ցանցային կապ։
    • stream_select(): Կապում է փոփոխությունների սպասում մի քանի հոսքերում։
  • «FTP» բաժինը՝ FTP սերվերների հետ աշխատելու ֆունկցիաներ։
    • ftp_connect(): Կապ հաստատում է FTP սերվերի հետ։
    • ftp_login(): Մուտք է գործում FTP սերվերին։
    • ftp_get(): Տվյալ ֆայլը ներբեռնում է FTP սերվերից։
    • ftp_put(): Ֆայլը բեռնում է FTP սերվերին։
  • «Mail» բաժինը՝ էլեկտրոնային փոստ ուղարկելու ֆունկցիաներ։
    • mail(): Ուղարկում է նամակ։

Ընտրությունը կոնկրետ ֆունկցիայի՝ կախված է առաջադրանքից։ Նվազ մակարդակի պրոտոկոլների հետ աշխատելու համար հարմար են սոկետները։ Պարզ HTTP հարցումների համար կարելի է օգտագործել file_get_contents() կամ cURL։ cURL-ը ավելի ճկուն և հզոր է բարդ HTTP գործողությունների համար։ Հոսքերը ապահովում են ցանցային հաղորդակցությունների ավելի բարձր մակարդակի արհեստականություն։