Skip to content

Instantly share code, notes, and snippets.

@freshteapot
Created November 30, 2012 08:13
Show Gist options
  • Save freshteapot/4174469 to your computer and use it in GitHub Desktop.
Save freshteapot/4174469 to your computer and use it in GitHub Desktop.
Example of using php and libevent to processs a file at the command line by pipping it to the file.
a,b,c
d,e,f
---
<?php
global $writer;
$fileName = "./new.csv";
unlink($fileName);
$writer = fopen($fileName, "a+");
function parseInput($fd, $events, $arg)
{
global $writer;
static $max_requests = 0;
if ($max_requests == 2) {
fclose($writer);
event_base_loopexit($arg[1]);
}
// print the line
$str = fgets($fd);
if (empty($str)) {
$max_requests++;
return;
}
$max_requests = 0;
$str = strrev($str);
$a = str_getcsv($str);
fputcsv($writer, $a);
}
// create base and event
$base = event_base_new();
$event = event_new();
$fd = STDIN;
// set event flags
event_set($event, $fd, EV_READ | EV_PERSIST, "parseInput", array($event, $base));
// set event base
event_base_set($event, $base);
// enable event
event_add($event);
// start event loop
event_base_loop($base);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment