Imej yang dijana PHP GD Imej tidak boleh dipaparkan kerana ia mengandungi ralat dalam Firefox



Apabila menjana imej dengan PHP, sebagai contoh menambah tanda air kepada gambar yang disimpan oleh pelayan, menggunakan kod di bawah, atau yang serupa dengan JPEG dan bukannya PNG, imej mungkin tidak dijana sama sekali dan membuang ralat, dilihat secara langsung pada Firefox, tetapi tidak pada Chrome.

Kod jenis ini, walaupun berfungsi pada beberapa pelayan, mungkin sekarang bekerja pada beberapa yang lain, kadang-kadang atas alasan yang tidak jelas. Dalam kes saya, ia berfungsi dengan baik di dalam negara, tetapi dihasilkan di bawah kesilapan pada pelayan internet, imej tidak dapat dipaparkan kerana mengandungi ralat.

Isu ini boleh datang dari beberapa sebab, di sini adalah sebahagian daripada mereka:

Keluaran telah ditetapkan sebelum ini.

Kesilapan tulen daripada penjanaan imej.

Jenis imej yang salah digunakan.

Pustaka imej tidak dipasang.

Keluaran telah ditetapkan sebelum ini

Walaupun tidak sengaja, contohnya skrip lain yang mengandungi spasi sebelum ini - untuk mengelakkan ralat ini, pastikan, sebagai PHP mencadangkan, tidak menutup skrip dengan tag akhir PHP?>

Kemudian, sebelum menggunakan fungsi header, gunakan kod berikut untuk memastikan mana-mana tajuk yang ditetapkan sebelumnya dibuang

Dan juga fungsi ini untuk memastikan tiada output telah dihasilkan sebelum header dan imej

Ini menyelesaikan masalah dalam kes saya, dan imej itu dipaparkan semula dengan betul.

Kesilapan tulen daripada penjanaan imej

Sekiranya ralat sebenar dilemparkan semasa penjanaan imej, pastikan PHP ditetapkan untuk memaparkan semua kemungkinan ralat, dan periksa log yang sepadan, untuk dapat menjejaki dan menyelesaikannya.

Berikutan kod akan menjadikan PHP melaporkan kesilapan dalam log:

Penciptaan laman web induk: Daftar sekarang!

Mengubah kehadiran digital anda dengan Kursus Penciptaan Laman Web Komprehensif kami - Mulakan perjalanan anda untuk menjadi pakar web hari ini!

Daftar di sini

Mengubah kehadiran digital anda dengan Kursus Penciptaan Laman Web Komprehensif kami - Mulakan perjalanan anda untuk menjadi pakar web hari ini!

Anda kemudian dapat mengetahui bahawa beberapa ralat dilaporkan, walaupun mereka tidak muncul dalam html output, kerana konfigurasi pelayan.

Jenis imej yang salah digunakan

Pastikan jenis imej yang anda gunakan adalah betul, contohnya menggunakan kod ini untuk membezakan antara png dan jpeg.

Juga pastikan pengepala adalah betul mengikut output yang digunakan, bergantung kepada fungsi generasi imej yang digunakan

Pustaka imej tidak dipasang

Untuk memastikan pustaka imej dipasang. Untuk berbuat demikian, jalankan fungsi phpinfo (); dalam skrip, dan periksa output untuk nilai berikut yang berkaitan dengan PHP GD, perpustakaan grafik yang digunakan oleh fungsi seperti imagepng ();

Dalam kes-kes pakej yang hilang, cara untuk menyelesaikannya bergantung kepada konfigurasi setempat anda, sama ada dengan menambah pakej menggunakan arahan PEAR, atau menggunakan hos web yang dibina dalam penyelesaian untuk pemasangan pakej.

Apa yang perlu dilakukan apabila imagejpeg atau imagepng tidak berfungsi

Dalam NotaPad ++, buka fail PHP yang memanggil fungsi imagepng, dan simpannya selepas pergi ke Pengekodan> Tukar ke UTF-8 tanpa BOM.

Di DreamWeaver, pergi ke Laman Properties> Tajuk / Pengekodan> hapus centang Sertakan Unicode Signature (BOM).

Apabila PHP imagejpeg atau imagepng tidak berfungsi, ia kemungkinan besar disebabkan oleh fail PHP yang telah dikodkan dengan BOM, Bill Of Material, dan oleh itu maklumat tambahan dihantar dengan imej sebelum data imej.

Fungsi imagejpeg PHP dan PHP adalah fungsi yang digunakan untuk menghantar kod gambar secara langsung dalam respon pelayan.

PHP - imagepng tidak berfungsi dengan betul
PHP - fungsi imagepng
PHP - fungsi imagejpeg

Soalan Yang Sering Ditanya

Mengapa saya tidak dapat memaparkan imej yang dibuat dengan PHP GD dalam penyemak imbas saya?
Sekiranya gambar PHP GD anda tidak memaparkan dan menunjukkan ralat dalam penyemak imbas, mungkin disebabkan oleh beberapa sebab seperti output sebelumnya yang telah dihantar, kesilapan tulen semasa penjanaan imej, menggunakan jenis imej yang salah, atau Perpustakaan Imej GD tidak dipasang. Pastikan tiada output terdahulu dihantar, periksa kesilapan tulen, sahkan jenis imej dan header, dan sahkan pemasangan perpustakaan GD.
Bagaimanakah pemaju dapat membetulkan isu PHP GD yang dihasilkan imej yang tidak dipaparkan di Firefox kerana kesilapan?
Pemaju perlu menyemak kod penjanaan imej untuk kesilapan, pastikan pengepala jenis kandungan yang betul sedang dihantar sebelum sebarang data imej, dan sahkan bahawa tiada ralat atau amaran PHP sedang dikeluarkan. Menggunakan ob_clean () sebelum mengeluarkan imej juga boleh membantu.

Yoann Bierling
Mengenai Pengarang - Yoann Bierling
Yoann Bierling adalah Profesional Perundingan Penerbitan & Digital Web, membuat kesan global melalui kepakaran dan inovasi dalam teknologi. Ghairah tentang memperkasakan individu dan organisasi untuk berkembang maju dalam era digital, dia didorong untuk memberikan hasil yang luar biasa dan memacu pertumbuhan melalui penciptaan kandungan pendidikan.

Penciptaan laman web induk: Daftar sekarang!

Mengubah kehadiran digital anda dengan Kursus Penciptaan Laman Web Komprehensif kami - Mulakan perjalanan anda untuk menjadi pakar web hari ini!

Daftar di sini

Mengubah kehadiran digital anda dengan Kursus Penciptaan Laman Web Komprehensif kami - Mulakan perjalanan anda untuk menjadi pakar web hari ini!




Komen (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
بالضبط ما كنت أبحث عنه ، مثالي

Tinggalkan komen