Sobes.tech
Junior

What network functions exist in PHP?

sobes.tech AI

Answer from AI

In PHP, there are many network functions covering various aspects of network operations. The most commonly used include:

  • "Sockets" section:
    • socket_create(): Creates a socket.
    • socket_connect(): Connects to a remote host.
    • socket_bind(): Binds a socket to an address and port.
    • socket_listen(): Listens for incoming connections on a socket.
    • socket_accept(): Accepts an incoming connection.
    • socket_read(): Reads data from a socket.
    • socket_write(): Writes data to a socket.
    • socket_close(): Closes the socket.
    • socket_last_error(): Returns the last socket error code.
    • socket_strerror(): Returns a string description of the socket error.
<?php
// Example of creating and connecting a socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "Socket created.\n";
}

$result = socket_connect($socket, 'example.com', 80);
if ($result === false) {
    echo "socket_connect() failed: reason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "Connection established.\n";
}
socket_close($socket); // Close the socket
?>
  • "URL" section:
    • file_get_contents(): Reads file content into a string (can be used for HTTP).
    • file_put_contents(): Writes data to a file (can be used for HTTP POST).
    • get_headers(): Returns HTTP response headers.
    • parse_url(): Parses a URL into components.
    • http_build_query(): Generates a query string.
  • "DNS" section:
    • gethostbyname(): Returns the IPv4 address of a host.
    • gethostbyaddr(): Returns the hostname for an IP address.
    • getmxrr(): Gets mail exchange (MX) records for a domain.
  • "cURL" section (requires cURL extension): Provides a versatile client mechanism for executing HTTP requests, including functions for handling cookies, proxies, authentication, etc.
    • curl_init(): Initializes a cURL session.
    • curl_setopt(): Sets options for the cURL session.
    • curl_exec(): Executes the cURL session.
    • curl_close(): Closes the cURL session.
<?php
// Example of using cURL to fetch page content
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Return result as a string

$output = curl_exec($ch);

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

curl_close($ch);
?>
  • "Stream" section: (Streams in PHP provide a unified interface for various resource types, including network sockets and HTTP.)
    • stream_socket_client(): Opens a client network connection.
    • stream_socket_server(): Creates a server network connection.
    • stream_select(): Waits for changes in the status of multiple streams.
  • "FTP" section:
    • ftp_connect(): Connects to an FTP server.
    • ftp_login(): Authenticates on the FTP server.
    • ftp_get(): Downloads a file from the FTP server.
    • ftp_put(): Uploads a file to the FTP server.
  • "Mail" section:
    • mail(): Sends an email.

The choice of a specific function depends on the task. For low-level protocol work, sockets are suitable. For simple HTTP requests, file_get_contents() or cURL can be used. cURL is more flexible and powerful for complex HTTP operations. Streams provide a more abstracted approach to network communications.