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 գործողությունների համար։ Հոսքերը ապահովում են ցանցային հաղորդակցությունների ավելի բարձր մակարդակի արհեստականություն։