国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

淺談PHP中Stream(流)

2024-05-04 23:36:00
字體:
來源:轉載
供稿:網友
Stream是PHP開發里最容易被忽視的函數系列(SPL系列,Stream系列,pack函數,封裝協議)之一,但其是個很有用也很重要的函數。Stream可以翻譯為“流”,在Java里,流是一個很重要的概念。
 

流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一條不間斷的字節流,用來實現程序或進程間的通信,或讀寫外圍設備、外部文件等。根據流的方向又可以分為輸入流和輸出流,同時可以在其外圍再套上其它流,比如緩沖流,這樣就可以得到更多流處理方法。

PHP里的流和Java里的流實際上是同一個概念,只是簡單了一點。由于PHP主要用于Web開發,所以“流”這塊的概念被提到的較少。如果有Java基礎,對于PHP里的流就更容易理解了。其實PHP里的許多高級特性,比如SPL,異常,過濾器等都參考了Java的實現,在理念和原理上同出一轍。

比如下面是一段PHP SPL標準庫的用法(遍歷目錄,查找固定條件的文件):
 

  1. class RecursiveFileFilterIterator extends FilterIterator 
  2.  // 滿足條件的擴展名 
  3.  protected $ext = array('jpg','gif'); 
  4.  /** 
  5.   * 提供 $path 并生成對應的目錄迭代器 
  6.   */ 
  7.  public function __construct($path
  8.  { 
  9.    parent::__construct(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path))); 
  10.  } 
  11.  /** 
  12.   * 檢查文件擴展名是否滿足條件 
  13.   */ 
  14.  public function accept() 
  15.  { 
  16.    $item = $this->getInnerIterator(); 
  17.    if ($item->isFile() && in_array(pathinfo($item->getFilename(), PATHINFO_EXTENSION), $this->ext)) 
  18.    { 
  19.      return TRUE; 
  20.    } 
  21.  } 
  22. // 實例化 
  23. foreach (new RecursiveFileFilterIterator('D:/history'as $item
  24.  echo $item . PHP_EOL; 
?
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长宁区| 奉贤区| 永兴县| 都安| 宁德市| 盐津县| 依兰县| 连云港市| 抚州市| 昌乐县| 利津县| 上蔡县| 招远市| 日喀则市| 平潭县| 开化县| 岢岚县| 民勤县| 罗甸县| 大余县| 五原县| 晴隆县| 清新县| 房产| 外汇| 顺义区| 商河县| 洛浦县| 克东县| 安溪县| 龙口市| 余干县| 全椒县| 南和县| 永清县| 米泉市| 定州市| 绥中县| 沁水县| 丰镇市| 沁水县|