程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP內置Web Server探究(二)自定義PHP控制台輸出console函數,webconsole

PHP內置Web Server探究(二)自定義PHP控制台輸出console函數,webconsole

編輯:關於PHP編程

PHP內置Web Server探究(二)自定義PHP控制台輸出console函數,webconsole


我們在開發APP的服務器端,當和APP進行聯調時通常需要實時跟蹤URL請求和參數的接收情況。

 

但PHP並沒有像Python或Java專有的控制台輸出函數,Python的print()和Java的System.out.println(),PHP的echo,print等函數在直接使用php -f index.php時,可以打印以shell屏幕上,但在cli_server運行時並不能滿足把調試信息只打印在shell而不顯示在浏覽器。

 

用度娘搜了好久,網上對PHP內置server cli模式的資料少之又少,根本找不到一點有用的信息。

 

通過查閱PHP官方文檔,最後想到PHP的標准輸出流STDOUT

  php://output 是一個只寫的數據流, 允許你以 print 和 echo 一樣的方式 寫入到輸出緩沖區

 

當在cli模式下運行時,只要向STDOUT寫入數據時,並不需要echo 或 print 就會立即 打印 到 SHELL客戶端:

 

於是,我們可以編寫一個自定義函數來封裝對sdtout標准輸出流的數據的入,相當於隨時把想要顯示的調度信息打印到shell:

1 /*
2 * cli模式或者內置server打印調試信息,而不在浏覽器輸出
3 * param fixed $data    參數可以是除了對象以外的所有數據類型,比如:字符串,數組,jason等
4 */
5 function console($data){
6      $stdout = fopen('php://stdout', 'w');
7      fwrite($stdout,json_encode($data)."\n");   //為了打印出來的格式更加清晰,把所有數據都格式化成Json字符串
8      fclose($stdout);
9 }

 

當需要在內置Server每一個請求後,打印當前的調試信息時:直接調用console()即可

比如:

  打印所有接收到的GET或POST參數:

  console($_GET);

  console($_POST);

  

  打印字符串:

  console("hello php console debug");

  

 

以後再也不用羨慕Python和Java的控制台輸出,PHP從此也有控制台輸出函數了

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved