2015-05-20 15 views
5

Trong javascript, tôi có thể in đến debug console sử dụng
Làm thế nào để echo để debug console với php

console.log("Message here"); 

bây giờ tôi đang viết một kịch bản php, và muốn in tới debug console. Sử dụng mã trên không hoạt động trong php. Có vẻ như tôi cần phải sử dụng hoặc echo hoặc một số lệnh khác nhưng tôi cần đầu ra xuất hiện bên trong giao diện điều khiển đầu ra, không phải là cửa sổ trình duyệt.

+3

Tôi không biết cách nào để chuyển sang bảng điều khiển nhưng bạn chắc chắn có thể ghi vào nhật ký lỗi sẽ tốt nhất. http://php.net/manual/en/function.error-log.php – Squeegy

+2

không thể thực hiện được. php chạy trên máy chủ và không thể "nói chuyện" với trình điều khiển gỡ lỗi JS của trình duyệt của bạn. tại PHP tốt nhất có thể làm một cái gì đó giống như 'echo '" ', nhưng đó không phải là php" đăng nhập ", đó là php outputting JS mã kích hoạt đăng nhập. –

+1

bạn có thể cho ví dụ về những gì bạn muốn in ở đó không? –

Trả lời

20
<?php 
    echo '<script>console.log("Your stuff here")</script>'; 
?> 
+2

Hoạt động! Nhưng trong trường hợp của tôi tôi cần phải echo một biến, do đó, mã trông như thế này: 'echo '' '"; ' – OB7

+1

Làm thế nào về dữ liệu mảng? –

+3

'echo '';' là cách tốt nhất để in ra các biến mà tôi nghĩ. – blackandorangecat

1
<?php echo "<script>console.log({$yourVariable})</script>"; ?> 
4

Nếu bạn nghĩ rằng bạn sẽ ra rất nhiều trong giao diện điều khiển, bạn nên viết một hàm:

function debug($msg) { 
     $msg = str_replace('"', '\\"', $msg); // Escaping double quotes 
     echo "<script>console.log(\"$msg\")</script>"; 
} 

Bạn nên thoát khỏi dấu ngoặc kép trong chuỗi của bạn để tránh lỗi như một trong ví dụ này:

<?php 
    $string = "Let's get something to eat"; 
    echo "<script>console.log('$string');</script>"; 

Giới thiệu câu hỏi mảng ở trên từ @RobbNesp bạn có thể sử dụng vòng lặp foreach, nhưng tìm nó dễ dàng hơn cho tôi để đọc và hiểu bằng cách sử dụng hàm json_encode từ PHP.

Một ví dụ về việc sử dụng sẽ là:

$array = array ("foo", "bar", "baz"); 

debug(json_encode($array)); 

function debug($msg) { 
     $msg = str_replace('"', '\\"', $msg); 
     echo "<script>console.log(\"$msg\")</script>"; 
} 
0

Bạn cũng có thể thử cách này:

<?php 
    echo "<script>console.log('$variableName')</script>"; 
?> 
+0

Nhưng sau đó '$ variableName' không thể chứa dấu ngoặc kép ... bạn phải thoát chúng trước. kiểm tra các câu trả lời khác –

0

Có nhiều cách tốt hơn để in giá trị biến trong PHP. Một trong số đó là sử dụng hàm buildin var_dump(). Nếu bạn muốn sử dụng var_dump(), tôi cũng sẽ đề nghị cài đặt Xdebug (từ https://xdebug.org) vì nó tạo ra nhiều bản in dễ đọc hơn. Ý tưởng về các giá trị in ấn cho bảng điều khiển trình duyệt hơi kỳ lạ, nhưng nếu bạn thực sự muốn sử dụng nó, có phần mở rộng rất hữu ích của Google Chrome, PHP Console, sẽ đáp ứng mọi nhu cầu của bạn. Bạn có thể tìm thấy nó tại consle.com Nó hoạt động tốt trong Vivaldi và trong Opera (mặc dù bạn sẽ cần phần mở rộng "Tải xuống Chrome Extension" để cài đặt nó). Phần mở rộng đi kèm với thư viện PHP mà bạn sử dụng trong mã của mình.

Các vấn đề liên quan