Apakah mungkin menulis string atau masuk ke konsol?
Apa yang saya maksud
Sama seperti di JSP, jika kita mencetak sesuatu seperti system.out.println("some")
, itu akan ada di konsol, bukan di halaman.
Firefox
Di Firefox Anda dapat menggunakan ekstensi bernama FirePHP yang memungkinkan proses logging dan dumping informasi dari aplikasi PHP Anda ke konsol. Ini adalah tambahan untuk ekstensi pengembangan web Firebug yang luar biasa .
Chrome
Namun jika Anda menggunakan Chrome, ada alat debugging PHP yang disebut Chrome Logger atau webug (webug memiliki masalah dengan urutan log).
Baru-baru ini Clockwork sedang dalam pengembangan aktif yang memperluas Alat Pengembang dengan menambahkan panel baru untuk memberikan informasi debug dan profil yang berguna. Ini memberikan keluar dari kotak dukungan untuk LARAVEL 4 dan Slim 2 dan dukungan dapat ditambahkan melalui API extensible nya.
Menggunakan Xdebug
Cara yang lebih baik untuk men-debug PHP Anda adalah melalui Xdebug . Sebagian besar browser menyediakan ekstensi pembantu untuk membantu Anda melewatkan string cookie / kueri yang diperlukan untuk menginisialisasi proses debugging.
Atau Anda menggunakan trik dari PHP Debug ke konsol .
Pertama, Anda perlu sedikit fungsi bantuan PHP
Maka Anda dapat menggunakannya seperti ini:
Ini akan membuat output seperti ini:
sumber
"Debug Objects: " . $data . ""
$data
muncul di output, maka Anda belum mengetik fungsi persis seperti yang ditunjukkan. Perhatikan baik-baik tanda kutip tunggal dan ganda, untuk memastikan mereka cocok dengan kode di atas.$data
adalah variabel php; pada saat halaman dikirim ke browser, variabel php itu akan digantikan oleh parameter yang diteruskan kedebug_to_console
. Browser seharusnya tidak pernah melihat$data
. (Jika Anda melihatpage source
di browser, seharusnya tidak dikatakan$data
.)Jika Anda mencari pendekatan sederhana, gema sebagai JSON:
sumber
function debug_log( $object=null, $label=null ){ $message = json_encode($object, JSON_PRETTY_PRINT); $label = "Debug" . ($label ? " ($label): " : ': '); echo "<script>console.log(\"$label\", $message);</script>"; }
Secara default, semua output menuju
stdout
, yang merupakan respons HTTP atau konsol, tergantung pada apakah skrip Anda dijalankan oleh Apache atau secara manual pada baris perintah. Tetapi Anda dapat menggunakannyaerror_log
untuk mencatat dan berbagai aliran I / O dapat digunakan untuk menulisfwrite
.sumber
error_log
adalah apa yang saya butuhkan untuk output ke terminal dari server webCoba yang berikut ini. Ini bekerja:
sumber
Menciptakan a
dengan
sehingga div tidak ditampilkan, tetapi
fungsi dibuat dalam javascript. Jadi, Anda mendapatkan pesan di konsol.
sumber
div
. jika Anda hanya memiliki<script>
blok, tidak ada yang ditampilkan di browser.json.encode
sehingga tanda kutip tidak merusak baris kode Anda. Sebagai contoh:echo "<script>console.log(".json_encode($msg).")</script>";
Sebagai penulis laman web tertaut dalam jawaban populer , saya ingin menambahkan versi terakhir dari fungsi pembantu sederhana ini. Itu jauh lebih solid.
Saya gunakan
json_encode()
untuk melakukan pengecekan jika tipe variabel tidak diperlukan dan juga menambahkan buffer untuk menyelesaikan masalah dengan framework. Tidak ada pengembalian yang solid atau penggunaan berlebihanheader()
.Pemakaian
Tangkapan layar hasilnya
Juga contoh sederhana sebagai gambar untuk memahaminya lebih mudah:
sumber
Saya pikir itu bisa digunakan -
sumber
Beberapa jawaban bagus yang menambah kedalaman; tetapi saya membutuhkan sesuatu yang lebih sederhana dan lebih mirip dengan
console.log()
perintah JavaScript .Saya menggunakan PHP di banyak "pengumpulan data dan berubah menjadi XML" di aplikasi Ajax. JavaScript
console.log
tidak berfungsi dalam hal ini; itu merusak output XML.Xdebug, dll. Memiliki masalah serupa.
Solusi saya di Windows:
.txt
file yang agak mudah untuk diakses dan dituliserror_log
variabel PHP di.ini
file untuk menulis ke file ituerror_log('myTest');
perintah PHP untuk mengirim pesanSolusi ini sederhana dan memenuhi sebagian besar kebutuhan saya. PHP standar, dan panel pratinjau secara otomatis memperbarui setiap kali PHP menulisnya.
sumber
json_encode
juga akan menyelesaikan masalah? Jika demikian, mungkin tanda kutip di dalam pesan mengganggu tanda kutip dalam skrip. (misalnyaecho "<script>console.log(".json_encode($msg).")</script>";
:). Jika tidak, saya ingin tahu apa masalahnya yang menyebabkan skrip console.log rusak, dan bagaimana / mengapa solusi Anda memperbaikinya. Solusi Anda bagus - Saya hanya mencoba mempelajari lebih lanjut tentang kondisi yang menyebabkanconsole.log
atau output xml rusak. Dalam banyak kasus, log kesalahan seperti yang Anda lakukan jauh lebih baik daripada cepatconsole.log
.Interaksi PHP dan JavaScript.
sumber
Saya menemukan ini bermanfaat:
Dan gunakan seperti:
Output mana di konsol:
Dan Anda dapat mematikan log yang kurang penting dengan membatasi mereka menggunakan nilai $ debug.
sumber
console('Even Less Important' ,6 , $debug);
ini tidak akan ditampilkan di konsol? kenapa begitu? adalah apa pun di atas 5 tidak ditampilkan$output = '<script>console.log("' . str_repeat(" ", $priority-1)
dan. '");</script>';
. Hanyaimplode(",", $data)
dan$data
berbeda.Singkat dan mudah, untuk array, string atau juga objek.
sumber
sumber
Jika Anda ingin menulis ke file log PHP, dan bukan konsol JavaScript, Anda dapat menggunakan ini:
error_log("This is logged only to the PHP log")
Referensi: error_log
sumber
Untuk Chrome ada ekstensi yang disebut Chrome Logger memungkinkan untuk mencatat pesan PHP.
Firefox DevTools bahkan memiliki dukungan terintegrasi untuk protokol Chrome Logger .
Untuk mengaktifkan pencatatan, Anda hanya perlu menyimpan file 'ChromePhp.php' di proyek Anda. Maka bisa digunakan seperti ini:
Contoh diambil dari halaman GitHub .
Outputnya kemudian terlihat seperti ini:
sumber
"ccampbell/chromephp": "*"
Ada juga ekstensi Google Chrome, PHP Console , dengan perpustakaan PHP yang memungkinkan Anda untuk:
error file:line
dalam editor teks Anda.sumber
Saya sedang mencari cara untuk men-debug kode dalam plugin WordPress yang saya kembangkan dan menemukan posting ini.
Saya mengambil bit kode yang paling berlaku bagi saya dari respons lain dan menggabungkannya menjadi fungsi yang dapat saya gunakan untuk debugging WordPress. Fungsinya adalah:
Penggunaannya adalah sebagai berikut:
Jika fungsi ini digunakan dengan pengembangan WordPress, fungsi tersebut harus ditempatkan dalam
functions.php
file tema anak dan kemudian dapat dipanggil di mana saja dalam kode.sumber
Saya telah meninggalkan semua hal di atas demi Debugger & Logger . Saya tidak bisa cukup memujinya!
Cukup klik pada salah satu tab di kanan atas, atau pada "klik di sini" untuk membuka / menyembunyikan.
Perhatikan "kategori" yang berbeda. Anda dapat mengklik sembarang array untuk memperluas / menciutkannya.
Dari halaman web
sumber
Pada 2017, Firebug dan karenanya FirePHP telah dinonaktifkan .
Saya menulis beberapa modifikasi kecil pada alat ChromePHP untuk memungkinkan migrasi yang mulus dari FirePHP ke Firebug untuk debugging melalui konsol.
Artikel ini menjelaskan dalam langkah-langkah mudah yang jelas
Bermigrasi dari FirePHP ke ChromePHP dalam 5 menit (tanpa melanggar kode yang ada)
sumber
Untuk panggilan Ajax atau respons XML / JSON, di mana Anda tidak ingin mengacaukan tubuh, Anda perlu mengirim log melalui tajuk HTTP, lalu menambahkannya ke konsol dengan ekstensi web. Ini adalah bagaimana FirePHP (tidak lagi tersedia) dan QuantumPHP (garpu ChromePHP) melakukannya di Firefox.
Jika Anda memiliki kesabaran, x-debug adalah pilihan yang lebih baik - Anda mendapatkan wawasan yang lebih dalam tentang PHP, dengan kemampuan untuk menjeda skrip Anda, melihat apa yang sedang terjadi, kemudian melanjutkan skrip.
sumber
Saya mungkin terlambat menghadiri pesta, tetapi saya mencari implementasi fungsi logging yang:
console.log()
,console.log()
.Jadi outputnya terlihat seperti itu:
(Cuplikan di bawah ini diuji pada php
7.2.11
. Saya tidak yakin tentang kompatibilitasnya dengan php. Ini juga bisa menjadi masalah untuk javascript (dalam istilah browser lama), karena ia menciptakan tanda koma setelahconsole.log()
argumen - yang tidak legal sampaiES 2017
.)sumber
Salah satu dari kedua ini berfungsi:
sumber
Inilah solusi saya, hal yang baik tentang yang satu ini adalah Anda dapat lulus sebanyak mungkin param.
Sebut seperti ini
Sekarang Anda seharusnya bisa melihat output di konsol Anda, selamat coding :)
sumber
Menggunakan:
sumber
Inilah fungsi yang berguna. Ini super mudah digunakan, memungkinkan Anda untuk meloloskan sebanyak mungkin argumen dari jenis apa pun, dan akan menampilkan konten objek di jendela konsol browser seolah-olah Anda memanggil console.log dari JavaScript - tetapi dari PHP
Catatan, Anda dapat menggunakan tag juga dengan melewati 'TAG-YourTag', dan itu akan diterapkan hingga tag lain dibaca, misalnya, 'TAG-YourNextTag'
CATATAN: func_num_args () dan func_num_args () adalah fungsi PHP untuk membaca sejumlah argumen input yang dinamis, dan memungkinkan fungsi ini memiliki banyak permintaan console.log yang tak terhingga dari satu panggilan fungsi.
sumber
Meskipun ini adalah pertanyaan lama, saya sudah mencari ini. Inilah kompilasi saya dari beberapa solusi yang dijawab di sini dan beberapa ide lain yang ditemukan di tempat lain untuk mendapatkan solusi satu ukuran untuk semua.
Kode:
UJI & PENGGUNAAN:
Penggunaannya sederhana. Sertakan fungsi pertama untuk posting ke konsol secara manual. Gunakan fungsi kedua untuk mengalihkan penanganan pengecualian php. Tes berikut harus memberikan ide.
PENJELASAN:
Fungsi
console($data, $is_error, $file, $fn)
mengambil string atau array sebagai argumen pertama dan mempostingnya di konsol menggunakan sisipan js.Argumen kedua adalah bendera untuk membedakan log normal terhadap kesalahan. Untuk kesalahan, kami menambahkan pendengar acara untuk memberi tahu kami melalui peringatan jika ada kesalahan yang dilemparkan, juga disorot di konsol. Bendera ini defaultnya salah.
Argumen ketiga dan keempat adalah deklarasi eksplisit nomor file dan baris, yang opsional. Jika tidak ada, mereka default untuk menggunakan fungsi php yang telah ditentukan
debug_backtrace()
untuk mengambilnya untuk kita.Fungsi selanjutnya
exceptions_to_console($svr, $str, $file, $ln)
memiliki empat argumen dalam urutan yang disebut oleh php handler exception exception. Di sini, argumen pertama adalah tingkat permasalahan, yang kami tinjau lebih lanjut dengan konstanta yang telah ditentukan menggunakan fungsiseverity_tag($code)
untuk memberikan informasi lebih lanjut tentang kesalahan.MEMPERHATIKAN :
Kode di atas menggunakan fungsi dan metode JS yang tidak tersedia di browser lama. Untuk kompatibilitas dengan versi yang lebih lama, perlu diganti.
Kode di atas adalah untuk lingkungan pengujian, di mana Anda sendiri memiliki akses ke situs. Jangan gunakan ini di situs web (produksi) langsung.
SARAN :
Fungsi pertama
console()
melemparkan beberapa pemberitahuan, jadi saya membungkusnya dengan fungsi lain dan menyebutnya menggunakan operator kontrol kesalahan '@'. Ini bisa dihindari jika Anda tidak keberatan dengan pemberitahuan itu.Last but not least, peringatan yang muncul bisa mengganggu saat coding. Untuk ini, saya menggunakan bip ini (ditemukan dalam solusi: https://stackoverflow.com/a/23395136/6060602 ) alih-alih peringatan popup. Ini cukup keren dan kemungkinan tidak terbatas, Anda dapat memainkan lagu favorit Anda dan membuat pengkodean menjadi lebih tidak stres.
sumber