php fopen - 如何使用fopen打开文件的一部分,

时间:2013-05-28 21:45:33

标签: php calendar fopen icalendar

让我们承认我们有一个庞大的文本文件,更准确的是一个ics文件。巨大... 10MB或更多
而且我们想用php来读出它的一部分 来自

'BEGIN:VEVENT
CREATED:20111130T144848Z' 
...

到下一次出现的

...
 'END:VEVENT'. 

为了将它用作阵列
有人有提示吗?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

$numb=0;
$result=array();
$handle = @fopen("inputfile.txt", "r");
$exit=0;
  while (($buffer = fgets($handle) && $exit==0) {
        if(strpos($buffer,'BEGIN:VEVENT')){
          $onoff=1;
        }
        if ($onoff==1){
          $result[$numb]=$buffer;
          $numb=numb+1;
        }
        if(strpos($buffer,'END:VEVENT')){
          $onoff=0;
          $exit=1;
         }

    }
  if (!feof($handle)) {
      echo "Error: unexpected fgets() fail\n";
  }
  fclose($handle);
 }