Apakah mungkin menulis string atau masuk ke konsol? Sama seperti di JSP, jika kita mencetak sesuatu seperti Apa yang saya maksud
system.out.println["some"]
, itu akan ada di konsol, bukan di halaman.
Jawaban:
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 .
- //www.studytrails.com/blog/using-firephp-in-firefox-to-debug-php/
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.
- Chrome - Xdebug Helper
- Firefox - Xdebug termudah
- Opera - Xdebug
- Safari - Xdebug Toggler
Atau Anda menggunakan trik dari PHP Debug ke konsol .
Pertama, Anda perlu sedikit fungsi bantuan PHP
function debug_to_console[$data] {
$output = $data;
if [is_array[$output]]
$output = implode[',', $output];
echo "console.log['Debug Objects: " . $output . "' ];";
}
Maka Anda dapat menggunakannya seperti ini:
debug_to_console["Test"];
Ini akan membuat output seperti ini:
Debug Objects: Test
Jika Anda mencari pendekatan sederhana, gema sebagai JSON:
console.log[];
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 menggunakannya error_log
untuk mencatat dan berbagai aliran I / O dapat digunakan untuk menulis fwrite
.
Coba yang berikut ini. Ini bekerja:
echo["console.log['PHP: " . $data . "'];"];
echo
"
console.log['console log message'];
";
Menciptakan a
dengan
display="none"
sehingga div tidak ditampilkan, tetapi
console.log[]
fungsi dibuat dalam javascript. Jadi, Anda mendapatkan pesan di konsol.
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 berlebihan 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['%s', $output];
echo $output;
}
Pemakaian
// $data is the example variable, object; here an array.
$data = [ 'foo' => 'bar' ];
debug_to_console[$data];`
Tangkapan layar hasilnya
Juga contoh sederhana sebagai gambar untuk memahaminya lebih mudah:
Saya pikir itu bisa digunakan -
function jsLogs[$data] {
$html = "";
$coll;
if [is_array[$data] || is_object[$data]] {
$coll = json_encode[$data];
} else {
$coll = $data;
}
$html = "console.log['PHP: ${coll}'];";
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"]}
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:
- Setup
.txt
file yang agak mudah untuk
diakses dan ditulis - Atur
error_log
variabel PHP di.ini
file untuk menulis ke file itu - Buka file di Windows File Explorer dan buka panel pratinjau untuk itu
- Gunakan
error_log['myTest'];
perintah PHP untuk mengirim pesan
Solusi ini sederhana dan memenuhi sebagian besar kebutuhan saya. PHP standar, dan panel pratinjau secara otomatis memperbarui
setiap kali PHP menulisnya.
$variable = "Variable";
echo "console.log['$variable'];";
Interaksi PHP dan JavaScript.
Saya menemukan ini bermanfaat:
function console[$data, $priority, $debug]
{
if [$priority
Output mana di konsol:
Important
Less Important
Even Less Important
Again Important
Dan Anda dapat mematikan log yang kurang penting dengan membatasi mereka menggunakan nilai $ debug.
Singkat dan mudah, untuk array, string atau juga objek.
function console_log[ $data ] {
$output = "console.log[ 'PHP debugger: ";
$output .= json_encode[print_r[$data, true]];
$output .= "' ];";
echo $output;
}
function phpconsole[$label='var', $x] {
?>
console.log[''];
console.log[''];
Chủ Đề