Sobes.tech
Junior

Ποιες λειτουργίες δικτύου υπάρχουν στο PHP;

sobes.tech AI

Απάντηση από AI

Υπάρχουν πολλά δίκτυα functions στη PHP που καλύπτουν διάφορες πτυχές της δικτυακής εργασίας. Τα πιο συχνά χρησιμοποιούμενα είναι:

  • Ενότητα "Σωλήνες" (Sockets):
    • socket_create(): Δημιουργεί ένα socket.
    • socket_connect(): Δημιουργεί σύνδεση με απομακρυσμένο διακομιστή.
    • socket_bind(): Δένει το socket σε διεύθυνση και θύρα.
    • socket_listen(): Ακούει εισερχόμενες συνδέσεις.
    • socket_accept(): Δέχεται μια εισερχόμενη σύνδεση.
    • socket_read(): Διαβάζει δεδομένα από το socket.
    • socket_write(): Γράφει δεδομένα στο socket.
    • socket_close(): Κλείνει το socket.
    • socket_last_error(): Επιστρέφει τον τελευταίο κωδικό σφάλματος socket.
    • socket_strerror(): Επιστρέφει περιγραφή σφάλματος socket.
<?php
// Παράδειγμα δημιουργίας και σύνδεσης σε socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() απέτυχε: λόγος: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "Το socket δημιουργήθηκε.\n";
}

$result = socket_connect($socket, 'example.com', 80);
if ($result === false) {
    echo "socket_connect() απέτυχε: λόγος: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "Η σύνδεση established.\n";
}
socket_close($socket); // Κλείσιμο socket
?>
  • Ενότητα "URL":
    • file_get_contents(): Διαβάζει το περιεχόμενο αρχείου σε μια συμβολοσειρά (μπορεί να χρησιμοποιηθεί για HTTP).
    • file_put_contents(): Γράφει δεδομένα σε αρχείο (μπορεί να χρησιμοποιηθεί για HTTP POST).
    • get_headers(): Επιστρέφει τους επικεφαλίδες της απάντησης HTTP.
    • parse_url(): Αναλύει το URL σε συστατικά.
    • http_build_query(): Δημιουργεί μια συμβολοσειρά ερωτήματος.
  • Ενότητα "DNS":
    • gethostbyname(): Επιστρέφει τη διεύθυνση IPv4 του host.
    • gethostbyaddr(): Επιστρέφει το όνομα του host για μια διεύθυνση IP.
    • getmxrr(): Λαμβάνει εγγραφές ανταλλαγής email (MX) για το domain.
  • Ενότητα "cURL" (απαιτεί επέκταση cURL): Παρέχει πολύπλευρο μηχανισμό πελάτη για εκτέλεση HTTP αιτημάτων. Περιλαμβάνει λειτουργίες για cookies, proxy, αυθεντικοποίηση κ.λπ.
    • 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 Streams παρέχουν ενιαία διεπαφή για διάφορους τύπους πόρων, συμπεριλαμβανομένων δικτυακών socket και HTTP.
    • stream_socket_client(): Ανοίγει πελάτη δικτύου.
    • stream_socket_server(): Δημιουργεί διακομιστή δικτύου.
    • stream_select(): Περιμένει αλλαγές κατάστασης σε πολλαπλές ροές.
  • Ενότητα "FTP": Λειτουργίες για εργασίες με FTP διακομιστές.
    • ftp_connect(): Συνδέεται με FTP διακομιστή.
    • ftp_login(): Συνδέεται με FTP διακομιστή με διαπιστευτήρια.
    • ftp_get(): Κατεβάζει αρχείο από FTP διακομιστή.
    • ftp_put(): Ανεβάζει αρχείο σε FTP διακομιστή.
  • Ενότητα "Mail": Λειτουργίες για αποστολή email.
    • mail(): Αποστέλλει email.

Η επιλογή συγκεκριμένης λειτουργίας εξαρτάται από το έργο. Για χαμηλού επιπέδου εργασίες με πρωτόκολλα, ταιριάζουν τα sockets. Για απλά HTTP αιτήματα, μπορούν να χρησιμοποιηθούν file_get_contents() ή cURL. Το cURL είναι πιο ευέλικτο και ισχυρό για σύνθετες HTTP λειτουργίες. Οι ροές παρέχουν πιο αφαιρετική προσέγγιση στις δικτυακές επικοινωνίες.