Δημιουργία εικόνας PHP GD Η εικόνα δεν μπορεί να εμφανιστεί επειδή περιέχει σφάλματα στον Firefox



Όταν δημιουργείτε μια εικόνα με PHP, για παράδειγμα προσθέτοντας ένα υδατογράφημα σε μια αποθηκευμένη εικόνα διακομιστή χρησιμοποιώντας τον παρακάτω κώδικα ή παρόμοιο με το JPEG αντί για το PNG, μπορεί να μην δημιουργηθεί εικόνα και να ρίξει ένα σφάλμα, άμεσα ορατό στον Firefox, αλλά όχι στο Chrome.

Αυτού του είδους ο κώδικας, παρά τις εργασίες σε ορισμένους διακομιστές, μπορεί τώρα να λειτουργήσει σε κάποιους άλλους, μερικές φορές για συγκεχυμένους λόγους. Στην περίπτωσή μου, λειτούργησε πολύ καλά τοπικά, αλλά παράγεται κάτω από σφάλμα στο διακομιστή διαδικτύου, η εικόνα δεν μπορεί να εμφανιστεί επειδή περιέχει σφάλματα.

Το ζήτημα μπορεί να προέλθει από διάφορους λόγους, εδώ είναι μερικοί από αυτούς:

Μια έξοδος έχει ήδη ρυθμιστεί προηγουμένως.

Ένα γνήσιο σφάλμα από την παραγωγή εικόνων.

Χρησιμοποιείται λανθασμένος τύπος εικόνας.

Η βιβλιοθήκη εικόνων δεν έχει εγκατασταθεί.

Μια έξοδος έχει ήδη ρυθμιστεί προηγουμένως

Ακόμη και αν δεν είναι σκόπιμο, ίσως συμβαίνει, για παράδειγμα, ότι άλλα προηγούμενα σενάρια περιείχαν διαστήματα στο τέλος - για να αποφύγετε αυτό το σφάλμα, σιγουρευτείτε, όπως συνιστά η PHP, να μην κλείσετε δέσμες ενεργειών με ετικέτα end PHP;

Στη συνέχεια, πριν χρησιμοποιήσετε τη λειτουργία κεφαλίδας, χρησιμοποιήστε τον ακόλουθο κώδικα για να βεβαιωθείτε ότι απορρίπτεται οποιαδήποτε προηγούμενη κεφαλίδα

Και επίσης αυτή η λειτουργία για να βεβαιωθείτε ότι δεν έχει δημιουργηθεί έξοδος πριν από την κεφαλίδα και την εικόνα

Αυτό το ζήτημα λύθηκε στην περίπτωσή μου και η εικόνα απεικονίστηκε σωστά ξανά.

Ένα γνήσιο σφάλμα από την παραγωγή εικόνων

Σε περίπτωση που ένα πραγματικό σφάλμα ρίχτηκε κατά τη διάρκεια της δημιουργίας εικόνων, βεβαιωθείτε ότι η PHP έχει οριστεί για να εμφανίσει όλα τα πιθανά είδη σφαλμάτων και να ελέγξει τα αντίστοιχα αρχεία καταγραφής, ώστε να μπορεί να τα παρακολουθήσει και να τα λύσει.

Μετά τον κώδικα η PHP θα αναφέρει όλα τα σφάλματα στο αρχείο καταγραφής:

Master Website Creation: Εγγραφείτε τώρα!

Μεταμορφώστε την ψηφιακή σας παρουσία με το ολοκληρωμένο μάθημα δημιουργίας ιστότοπου - ξεκινήστε το ταξίδι σας για να γίνετε ειδικός στο διαδίκτυο σήμερα!

Εγγραφείτε εδώ

Μεταμορφώστε την ψηφιακή σας παρουσία με το ολοκληρωμένο μάθημα δημιουργίας ιστότοπου - ξεκινήστε το ταξίδι σας για να γίνετε ειδικός στο διαδίκτυο σήμερα!

Ενδέχεται, στη συνέχεια, να διαπιστώσετε ότι έχουν αναφερθεί ορισμένα σφάλματα, ακόμη και αν δεν εμφανίζονται στην έξοδο html, λόγω της διαμόρφωσης του διακομιστή.

Χρησιμοποιείται λανθασμένος τύπος εικόνας

Βεβαιωθείτε ότι οι τύποι εικόνων που χρησιμοποιείτε είναι σωστοί, για παράδειγμα χρησιμοποιώντας αυτόν τον κώδικα για να διακρίνετε μεταξύ png και jpeg.

Επίσης, βεβαιωθείτε ότι η κεφαλίδα είναι σωστή ανάλογα με την έξοδο που χρησιμοποιείται, ανάλογα με τη λειτουργία παραγωγής εικόνας που χρησιμοποιείται

Η βιβλιοθήκη εικόνων δεν έχει εγκατασταθεί

Για να βεβαιωθείτε ότι έχουν εγκατασταθεί οι βιβλιοθήκες εικόνων. Για να το κάνετε αυτό, εκτελέστε τη συνάρτηση phpinfo (); σε μια δέσμη ενεργειών και ελέγξτε την έξοδο για την ακόλουθη τιμή που σχετίζεται με την PHP GD, τη βιβλιοθήκη γραφικών που χρησιμοποιείται από λειτουργίες όπως imagepng ();

Σε περίπτωση που λείπουν πακέτα, ο τρόπος επίλυσής τους εξαρτάται από την τοπική διαμόρφωσή σας, είτε προσθέτοντας το πακέτο χρησιμοποιώντας εντολές PEAR είτε χρησιμοποιώντας την ενσωματωμένη λύση web hosting για την εγκατάσταση του πακέτου.

Τι να κάνετε όταν το imagejpeg ή το imagepng δεν λειτουργεί

Στο NotePad ++, ανοίξτε το αρχείο PHP που καλεί τη λειτουργία imagepng και αποθηκεύστε το μετά από το μενού Encoding> Convert to UTF-8 χωρίς BOM.

Στο DreamWeaver, μεταβείτε στην επιλογή Ιδιότητες σελίδας> Τίτλος / Κωδικοποίηση> καταργήστε την επιλογή Ενσωματώστε την υπογραφή Unicode (BOM).

Όταν το PHP imagejpeg ή το imagepng δεν δουλεύει, πιθανότατα οφείλεται στο γεγονός ότι το αρχείο PHP έχει κωδικοποιηθεί με ένα BOM, Bill of Material και επομένως αποστέλλονται επιπλέον πληροφορίες με την εικόνα πριν από τα δεδομένα εικόνας.

Οι λειτουργίες PHP imagejpeg και PHP imagepng είναι λειτουργίες που χρησιμοποιούνται για την αποστολή ενός κώδικα εικόνας απευθείας στην απάντηση του διακομιστή.

PHP - imagepng δεν λειτουργεί σωστά
PHP - λειτουργία εικόνας
PHP - λειτουργία imagejpeg

Συχνές Ερωτήσεις

Γιατί δεν μπορώ να εμφανίσω την εικόνα που δημιουργήθηκε με το PHP GD στο πρόγραμμα περιήγησής μου;
Εάν η εικόνα που παράγεται από το PHP GD δεν εμφανίζει και εμφανίζει σφάλμα στο πρόγραμμα περιήγησης, μπορεί να οφείλεται σε διάφορους λόγους όπως η προηγούμενη έξοδος που έχει ήδη αποσταλεί, γνήσια σφάλματα κατά τη διάρκεια της παραγωγής εικόνων, χρησιμοποιώντας λάθος τύπο εικόνας ή τη βιβλιοθήκη εικόνων GD όχι εγκατεστημένο. Βεβαιωθείτε ότι δεν αποστέλλεται προηγούμενη έξοδος, ελέγξτε για γνήσια σφάλματα, επαληθεύστε τον τύπο και την κεφαλίδα της εικόνας και επιβεβαιώστε την εγκατάσταση της βιβλιοθήκης GD.
Πώς μπορούν οι προγραμματιστές να διορθώσουν το ζήτημα των εικόνων που παράγονται από το PHP GD που δεν εμφανίζονται στον Firefox λόγω σφαλμάτων;
Οι προγραμματιστές θα πρέπει να ελέγχουν τον κωδικό δημιουργίας εικόνων για σφάλματα, να διασφαλίσουν ότι αποστέλλεται η σωστή κεφαλίδα τύπου περιεχομένου πριν από οποιαδήποτε δεδομένα εικόνας και να επαληθεύσει ότι δεν υπάρχουν σφάλματα PHP ή προειδοποιήσεις. Χρησιμοποιώντας το OB_CLEAN () πριν από την εξαγωγή της εικόνας μπορεί επίσης να βοηθήσει.

Yoann Bierling
Σχετικά με τον Συγγραφέα - Yoann Bierling
Ο Yoann Bierling είναι επαγγελματίας διαδικτυακής δημοσίευσης και ψηφιακής συμβουλευτικής, κάνοντας παγκόσμιο αντίκτυπο μέσω εμπειρογνωμοσύνης και καινοτομίας στις τεχνολογίες. Παθιασμένος με την ενδυνάμωση των ατόμων και των οργανώσεων να ευδοκιμήσουν στην ψηφιακή εποχή, οδηγείται να προσφέρει εξαιρετικά αποτελέσματα και να προωθήσει την ανάπτυξη μέσω της δημιουργίας εκπαιδευτικού περιεχομένου.

Master Website Creation: Εγγραφείτε τώρα!

Μεταμορφώστε την ψηφιακή σας παρουσία με το ολοκληρωμένο μάθημα δημιουργίας ιστότοπου - ξεκινήστε το ταξίδι σας για να γίνετε ειδικός στο διαδίκτυο σήμερα!

Εγγραφείτε εδώ

Μεταμορφώστε την ψηφιακή σας παρουσία με το ολοκληρωμένο μάθημα δημιουργίας ιστότοπου - ξεκινήστε το ταξίδι σας για να γίνετε ειδικός στο διαδίκτυο σήμερα!




Σχόλια (6)

 2018-08-19 -  Irvin Vasquez
Simple, clear and well explained, many thanks
 2018-08-19 -  Joyce Lawrence
ありがとう、非常に有益な
 2018-08-19 -  Catherine Roberts
Dokładnie tego, czego szukałem, idealnie
 2018-08-19 -  Headlinext
जानकारी का महान टुकड़ा, साझा करने के लिए धन्यवाद
 2018-08-19 -  Marshel
विश्वास नहीं कर सकता कि मुझे अंत में समाधान मिला, यह लंबे समय तक एक दुःस्वप्न था, अब हल हो गया
 2018-08-19 -  porcateraC
بالضبط ما كنت أبحث عنه ، مثالي

Αφήστε ένα σχόλιο