使用同一套程序逻辑,为了设置定时任务在cli中执行,需要同时兼容cli和web端的输出。
整合输出
使用一个输出函数接管cli和web的所有的输出
1 2 3 4 5 6 7 |
function add_message($message,$color='black'){ if(!defined('STDIN') ) { echo "<script type='text/javascript'>add('$message','$color');</script>"; ob_flush();flush();} if(defined('STDIN') ) { echo( color_console_output(" ".$message." \n",$color) );} } |
用一个函数将JavaScript颜色兼容至cli
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
function color_console_output($str, $color = 'black'){ switch ($color) { case 'black': //Black return "\033[39m$str\033[0m"; break; case 'red': //Red return "\033[31m$str\033[0m"; break; case 'green': //Green return "\033[32m$str\033[0m"; break; case 'yellow': //Yellow return "\033[33m$str\033[0m"; break; case 'blue': //Blue return "\033[34m$str\033[0m"; break; default: return "$str"; break; } } |
再用一个DOM容器来接管向web发送的输出
1 2 |
<div id="scrolldIV" style="overflow:auto; height: 600px; width: 900px; border: 1px solid #999;margin: 20px 0px;"> </div> |
使用一个JavaScript函数接收web输出
1 2 3 4 5 6 7 |
<script type="text/javascript"> function add(Text,color) { var now=new Date() var div = document.getElementById('scrolldIV'); div.innerHTML = div.innerHTML +'<span style="color:'+ color +'">'+now.toLocaleString('zh-CN', {hour12: false})+" " + Text +'<span>'+ '<br />'; div.scrollTop = div.scrollHeight; } </script> |
使用
1 |
add_message('Running from CLI', 'blue'); |
There are no comments yet