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 λειτουργίες. Οι ροές παρέχουν πιο αφαιρετική προσέγγιση στις δικτυακές επικοινωνίες.