File "class-logreader.php"

Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/product-import-export-for-woo/admin/classes/class-logreader.php
File size: 2.15 KB
MIME-type: text/x-php
Charset: utf-8

<?php
/**
 * Log reading section of the plugin
 *
 * @link       
 *
 * @package  Wt_Import_Export_For_Woo 
 */
if (!defined('ABSPATH')) {
    exit;
}
if(!class_exists('Wt_Import_Export_For_Woo_Basic_Logreader')){
class Wt_Import_Export_For_Woo_Basic_Logreader
{
	private $file_path='';
	private $file_pointer=null;
	private $mode='';
	public function __construct()
	{
		
	}
	public function init($file_path, $mode="r")
	{
		$this->file_path=$file_path;
		$this->mode=$mode;
		$this->file_pointer=@fopen($file_path, 'r');
	}
	public function close_file_pointer()
	{
		if($this->file_pointer!=null)
		{
			fclose($this->file_pointer);
		}
	}

	public function get_full_data($file_path)
	{
		$out=array(
			'response'=>false,
			'data_str'=>'',
		);
		$this->init($file_path);
		if(!is_resource($this->file_pointer))
		{
			return $out;
		}
		$data=fread($this->file_pointer, filesize($file_path));

		$this->close_file_pointer();

		$out=array(
			'response'=>false,
			'data_str'=>$data,
		);
		return $out;
	}
	
	/**
	*	Read log file as batch
	*	@param 		string  	path of file to read
	*	@param 		int  		offset in bytes. default 0
	*	@param 		int  		total row in a batch. default 50
	*	@return 	array  		response, next offset, data array, finished or not flag
	*/
	public function get_data_as_batch($file_path, $offset=0, $batch_count=50)
	{
		$out=array(
			'response'=>false,
			'offset'=>$offset,
			'data_arr'=>array(),
			'finished'=>false, //end of file reached or not
		);
		$this->init($file_path);
		if(!is_resource($this->file_pointer))
		{
			return $out;
		}

		fseek($this->file_pointer, $offset);
		$row_count=0;
		$next_offset=$offset;
		$finished=false;
		$data_arr=array();
		while(($data=fgets($this->file_pointer))!==false)
		{
			$data=maybe_unserialize($data);
			if(is_array($data))
			{
				$data_arr[]=$data;
				$row_count++;
				$next_offset=ftell($this->file_pointer);
			}
			if($row_count==$batch_count)
			{
				break;
			}
		}
		if($next_offset==filesize($file_path))
		{
			$finished=true;
		}
		$this->close_file_pointer();

		$out=array(
			'response'=>true,
			'offset'=>$next_offset,
			'data_arr'=>$data_arr,
			'finished'=>$finished,
		);
		return $out;
	}
}
}