PHP_EOL使用 Apache Mina框架實踐
1.為什麼要用Apache Mina框架
ApacheMina Server 是一個網絡通信應用框架,Mina 可以幫助我們快速開發高性能、高擴展性的網絡通信應用,Mina 提供了事件驅動、異步(Mina 的異步IO 默認使用的是JAVANIO 作為底層支持)操作的編程模型。
2.ApacheMina框架使用
Mina的執行流程:
> IoService:這個接口在一個線程上負責套接字的建立,擁有自己的Selector,監聽是否有連接被建立。
> IoProcessor:這個接口在另一個線程上,負責檢查是否有數據在通道上讀寫,也就是說它也擁有自己的Selector,這是與我們使用JAVA NIO 編碼時的一個不同之處,通常在JAVA NIO 編碼中,我們都是使用一個Selector,也就是不區分IoService與IoProcessor 兩個功能接口。另外,IoProcessor 負責調用注冊在IoService 上的過濾器,並在過濾器鏈之後調用IoHandler。
>IoFilter:這個接口定義一組攔截器,這些攔截器可以包括日志輸出、黑名單過濾、數據的編碼(write方向)與解碼(read 方向)等功能,其中數據的encode 與decode是最為重要的、也是你在使用Mina 時最主要關注的地方。
>IoHandler:這個接口負責編寫業務邏輯,也就是接收、發送數據的地方。
換行符
unix系列用 \n
windows系列用 \r\n
mac用 \r
PHP中可以用PHP_EOL來替代,以提高代碼的源代碼級可移植性
如:
<?php
echo PHP_EOL;
//windows平台相當於 echo “\r\n”;
//unix\linux平台相當於 echo “\n”;
//mac平台相當於 echo “\r”;
?>
類似常用的還有
DIRECTORY_SEPARATOR
可以用函數get_defined_constants()來獲取所有PHP常量