Sobes.tech
Junior

Kokios tinklo funkcijos yra PHP?

sobes.tech AI

Atsakymas iš AI

PHP yra daugybė tinklo funkcijų, apimančių įvairius tinklo sąsajos aspektus. Dažniausiai naudojamos yra:

  • "Soketų" skyrius (Sockets):
    • socket_create(): sukuria soketą.
    • socket_connect(): nustato ryšį su nuotoliniu hostu.
    • socket_bind(): pririša soketą prie adreso ir prievado.
    • socket_listen(): klausosi įeinančių ryšių.
    • socket_accept(): priima įeinantį ryšį.
    • socket_read(): skaito duomenis iš soketo.
    • socket_write(): rašo duomenis į soketą.
    • socket_close(): uždaro soketą.
    • socket_last_error(): grąžina paskutinį klaidos kodą.
    • socket_strerror(): grąžina klaidos aprašymą eilutėje.
// Pavyzdys, kaip sukurti ir prijungti soketą
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() nepavyko: priežastis: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "Soketas sukurtas.\n";
}

$result = socket_connect($socket, 'example.com', 80);
if ($result === false) {
    echo "socket_connect() nepavyko: priežastis: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "Ryšys užmegztas.\n";
}
socket_close($socket); // Uždaro soketą
?>
  • "URL" skyrius:
    • file_get_contents(): skaito failo turinį į eilutę (galima naudoti HTTP).
    • file_put_contents(): įrašo duomenis į failą (galima naudoti HTTP POST).
    • get_headers(): grąžina HTTP atsakymo antraštes.
    • parse_url(): analizuoja URL į komponentus.
    • http_build_query(): generuoja užklausos eilutę.
  • "DNS" skyrius:
    • gethostbyname(): grąžina hosto IPv4 adresą.
    • gethostbyaddr(): grąžina IP adreso hosto vardą.
    • getmxrr(): gauna pašto keitimo įrašus (MX) domenui.
  • "cURL" (reikalauja cURL plėtinio): siūlo daugiafunkcinį klientą HTTP užklausoms. apima funkcijas slapukams, proxy, autentifikacijai ir kt.
    • curl_init(): inicijuoja cURL sesiją.
    • curl_setopt(): nustato parinktis cURL sesijai.
    • curl_exec(): vykdo cURL sesiją.
    • curl_close(): uždaro cURL sesiją.
// Pavyzdys, kaip naudoti cURL gauti puslapio turinį
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // grąžinti rezultatą kaip eilutę

$output = curl_exec($ch);

if ($output === false) {
    echo "cURL klaida: " . curl_error($ch);
} else {
    echo $output;
}

curl_close($ch);
?>
  • "Stream" (srautai): PHP srautai suteikia vieningą sąsają įvairių išteklių tipams, įskaitant tinklo soketus ir HTTP.
    • stream_socket_client(): atidaro kliento tinklo ryšį.
    • stream_socket_server(): sukuria serverio tinklo ryšį.
    • stream_select(): laukia būsenos pasikeitimo keliuose srautuose.
  • "FTP" skyrius: funkcijos darbui su FTP serveriais.
    • ftp_connect(): nustato ryšį su FTP serveriu.
    • ftp_login(): prisijungia prie FTP serverio.
    • ftp_get(): įkelia failą iš FTP serverio.
    • ftp_put(): įkelia failą į FTP serverį.
  • "Mail" skyrius: funkcijos el. laiškų siuntimui.
    • mail(): siunčia laišką.

Pasirinkimas konkrečios funkcijos priklauso nuo užduoties. Žemų lygių protokolų darbui tinka soketai. Paprastiems HTTP užklausoms galima naudoti file_get_contents() arba cURL. cURL yra lankstesnis ir galingesnis sudėtingoms HTTP operacijoms. Srautai suteikia labiau abstrakčią prieigą prie tinklo komunikacijos.