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.