Apakah mungkin menulis string atau login ke konsol?
Seperti di JSP, jika kami mencetak sesuatu seperti sistem.keluar.println("c")
, itu akan ada di konsol, tidak di halaman.
Atau anda menggunakan trik dari PHP Debug untuk console.
Pertama, anda perlu sedikit PHP fungsi pembantu
function debug_to_console($data) {
$output = $data;
if (is_array($output))
$output = implode(',', $output);
echo "<script>console.log('Debug Objects: " . $output . "' );</script>";
}
Kemudian anda dapat menggunakannya seperti ini:
debug_to_console("Test");
Ini akan membuat output seperti ini:
Debug Objects: Test
Firefox
Di Firefox anda dapat menggunakan ekstensi yang disebut FirePHP yang memungkinkan penebangan dan pembuangan informasi dari aplikasi PHP anda ke konsol. Ini adalah addon untuk web yang mengagumkan pengembangan ekstensi Firebug.
Chrome
Namun jika anda menggunakan Chrome ada PHP debugging alat yang disebut Chrome Logger atau webug (webug memiliki masalah dengan rangka dari kayu).
Baru-baru ini Jam adalah dalam pengembangan aktif yang memperpanjang Alat Pengembang dengan menambahkan panel baru untuk memberikan berguna debugging dan profiling informasi. Ini memberikan keluar dari kotak dukungan untuk Laravel 4 dan Slim 2 dan dukungan dapat ditambahkan melalui extensible API.
Menggunakan Xdebug
Cara yang lebih baik untuk men-debug PHP anda akan melalui Xdebug. Sebagian besar browser menyediakan helper ekstensi untuk membantu anda melewati diperlukan cookie/query string untuk inisialisasi proses debugging.
Secara default, semua output pergi ke stdout
, yang merupakan respon HTTP atau konsol, tergantung pada apakah anda script ini dijalankan oleh Apache atau secara manual di command line. Tapi anda dapat menggunakan error_log
untuk penebangan dan berbagai I/O stream dapat ditulis dengan fwrite
.
echo
"<div display='none'>
<script type='text/javascript'>
console.log('console log message');
</script>
</div>";
Menciptakan
<div>
dengan
display="none"
sehingga div tidak ditampilkan, tetapi
console.log()
fungsi ini dibuat dalam javascript. Agar anda mendapatkan pesan di console.
Sebagai penulis terkait halaman web di jawaban populer, saya ingin menambahkan versi terakhir ini sederhana fungsi pembantu. Hal ini jauh lebih solid.
Saya menggunakan json_encode()
untuk membuat sebuah memeriksa jika variabel jenis ini tidak perlu dan juga menambahkan buffer untuk memecahkan masalah dengan kerangka. Ada tidak memiliki solid kembali atau penggunaan yang berlebihan dari header()
.
/**
* Simple helper to debug to the console
*
* @param $data object, array, string $data
* @param $context string Optional a description.
*
* @return string
*/
function debug_to_console($data, $context = 'Debug in Console') {
// Buffering to solve problems frameworks, like header() in this and not a solid return.
ob_start();
$output = 'console.info(\'' . $context . ':\');';
$output .= 'console.log(' . json_encode($data) . ');';
$output = sprintf('<script>%s</script>', $output);
echo $output;
}
// $data is the example variable, object; here an array.
$data = [ 'foo' => 'bar' ];
debug_to_console($data);`
Juga contoh sederhana sebagai gambar untuk memahami lebih mudah:
Saya pikir itu dapat digunakan --
function jsLogs($data) {
$html = "";
$coll;
if (is_array($data) || is_object($data)) {
$coll = json_encode($data);
} else {
$coll = $data;
}
$html = "<script>console.log('PHP: ${coll}');</script>";
echo($html);
# exit();
}
# For String
jsLogs("testing string"); #PHP: testing string
# For Array
jsLogs(array("test1", "test2")); # PHP: ["test1","test2"]
# For Object
jsLogs(array("test1"=>array("subtest1", "subtest2"))); #PHP: {"test1":["subtest1","subtest2"]}
Sebagian besar jawaban yang menambahkan lebih mendalam; tetapi aku butuh sesuatu yang lebih sederhana dan lebih suka JavaScript konsol.log()
perintah.
Saya menggunakan PHP dalam banyak "mengumpulkan data dan berubah menjadi XML" dalam aplikasi Ajax. JavaScript konsol.log
doesn't bekerja dalam hal itu; itu istirahat XML output.
Xdebug, dll. punya masalah serupa.
Solusi saya di Windows:
.txt
file yang agak mudah untuk mendapatkan dan dapat ditulisierror_log
variabel dalam .ini
file untuk menulis ke file ituerror_log('myTest');
perintah PHP untuk mengirim pesanIni adalah solusi sederhana dan memenuhi kebutuhan saya sebagian besar waktu. Standar PHP, dan panel pratinjau update secara otomatis setiap waktu PHP menulis untuk itu.
Saya menemukan ini berguna:
function console($data, $priority, $debug)
{
if ($priority <= $debug)
{
$output = '<script>console.log("' . str_repeat(" ", $priority-1) . (is_array($data) ? implode(",", $data) : $data) . '");</script>';
echo $output;
}
}
Dan menggunakannya seperti:
<?php
$debug = 5; // All lower and equal priority logs will be displayed
console('Important', 1 , $debug);
console('Less Important', 2 , $debug);
console('Even Less Important', 5 , $debug);
console('Again Important', 1 , $debug);
?>
Yang output di console:
Penting Kurang Penting Bahkan yang Kurang Penting Lagi Penting
Dan anda dapat beralih dari yang kurang penting log dengan membatasi mereka menggunakan $debug nilai.
Ada juga ekstensi Google Chrome, PHP Console, dengan perpustakaan PHP yang memungkinkan anda untuk:
error file:line
di editor teks anda.Untuk Chrome ada perpanjangan disebut Chrome Logger yang memungkinkan untuk log PHP pesan.
Firefox DevTools bahkan memiliki dukungan terintegrasi untuk Chrome Logger protokol.
Untuk mengaktifkan logging, anda hanya perlu untuk menyimpan 'ChromePhp.php' file dalam proyek anda. Maka dapat digunakan seperti ini:
include 'ChromePhp.php';
ChromePhp::log('Hello console!');
ChromePhp::log($_SERVER);
ChromePhp::warn('something went wrong!');
Contoh yang diambil dari halaman GitHub.
Output yang kemudian dapat terlihat seperti ini:
Aku sedang mencari cara untuk men-debug kode di plugin WordPress yang saya berkembang dan datang di posting ini.
Aku mengambil potongan-potongan kode yang paling berlaku untuk saya dari tanggapan lain dan dikombinasikan ini menjadi sebuah fungsi yang dapat saya gunakan untuk debugging WordPress. Fungsi tersebut adalah:
function debug_log($object=null, $label=null, $priority=1) {
$priority = $priority<1? 1: $priority;
$message = json_encode($object, JSON_PRETTY_PRINT);
$label = "Debug" . ($label ? " ($label): " : ': ');
echo "<script>console.log('" . str_repeat("-", $priority-1) . $label . "', " . $message . ");</script>";
}
Penggunaan adalah sebagai berikut:
$txt = 'This is a test string';
$sample_array = array('cat', 'dog', 'pig', 'ant', 'fly');
debug_log($txt, '', 7);
debug_log($sample_array);
Jika fungsi ini digunakan dengan pengembangan WordPress, fungsi harus ditempatkan dalam functions.php
file dari tema anak dan kemudian dapat dipanggil dimana saja dalam kode.
Aku telah meninggalkan semua hal di atas dalam mendukung Debugger & Logger. Aku tidak bisa memuji itu cukup!
Cukup klik pada salah satu tab di kanan atas, atau di "klik di sini" untuk memperluas/menyembunyikan.
Perilaku yang berbeda "kategori". Anda dapat mengklik setiap array untuk memperluas/runtuh itu.
Dari halaman web
fitur Utama:
- Menunjukkan globals variabel ($GLOBALS, $_POST, $_GET, $_COOKIE, dll.)
- Menunjukkan versi PHP dan dimuat ekstensi
- Mengganti PHP built in error handler
- Log query SQL
- Memantau dan kode query SQL waktu eksekusi
- Memeriksa variabel untuk perubahan
- Fungsi panggilan tracing
- Kode cakupan analisis untuk memeriksa baris script mana dieksekusi
- Dump dari semua jenis variabel
- File inspector dengan kode stabilo untuk melihat kode sumber
- Mengirim pesan ke konsol JavaScript (Chrome), untuk script Ajax
Untuk panggilan Ajax atau XML / JSON tanggapan, di mana anda don't ingin main-main dengan tubuh anda, anda perlu untuk mengirim log melalui HTTP header, kemudian menambahkannya ke konsol dengan ekstensi web. Ini adalah bagaimana FirePHP (tidak tersedia lagi) dan QuantumPHP (fork dari ChromePHP) melakukannya di Firefox.
Jika anda memiliki kesabaran, x-debug adalah pilihan yang lebih baik - anda mendapatkan wawasan yang lebih dalam PHP, dengan kemampuan untuk jeda naskah anda, melihat apa yang terjadi, kemudian melanjutkan script.
[Sebagai 2017, Firebug dan karenanya FirePHP telah dinonaktifkan][1].
Saya menulis sedikit modifikasi ChromePHP alat untuk memungkinkan migrasi yang mulus dari FirePHP untuk Firebug untuk debugging melalui konsol.
Artikel ini menjelaskan secara jelas langkah mudah
Bermigrasi dari FirePHP untuk ChromePHP dalam 5 menit (tanpa melanggar kode yang ada)
[1]: https://en.wikipedia.org/wiki/Firebug_(perangkat lunak)