PHP 自己写的位图函数库

一直在考虑怎么存储用户离散的点赞记录,后来用了文件存储和位图做出来的

文件读写的部分参考了别人的写法。

 array());
		$begin_line = $start_line;
		$step = 10;
		while ( count($favour_set['id'])<$return_num) {
			$bitmap_set = get_file_lines($filename,$begin_line,10);
			if(empty($bitmap_set)) break;
			foreach ($bitmap_set as $key => $value) {
				if($value==0) continue;
				for($i=0;$i<32;$i++){
					if($value&(1<<$i)) array_push($favour_set['id'],$i+(32*($key-1)));
				}
			}
			$begin_line+=$step;		
		}
		return $favour_set;
	}

	function init_line($filename,$line=0)
	{
		$file_data=file($filename);

		$new_data = "";
		for($i=0;$i=5.1.0
		if (version_compare(PHP_VERSION, '5.1.0', '>=')) { 
			$fp = new SplFileObject($filename, $method); 
			if($fp)
			$fp->seek($start_line - 1); 
			for ($i = 0; $i < $line_num; ++$i) { 
				$content[$start_line+$i] = $fp->current();
				$fp->next(); 
			} 
		} else {	//PHP<5.1 
			$fp = fopen($filename, $method); 
			if (!$fp) 
				return 'error:can not read file'; 
			for ($i = 1; $i < $start_line; ++$i) { 
				fgets($fp); 
			} 

			for ($i=0; $i < $line_num; ++$i) { 
				$content[$start_line+$i] = fgets($fp); 
			} 
			fclose($fp); 
		} 
		return array_filter($content); // array_filter过滤:false,null,'' 
	} 

 ?>


你可能感兴趣的:(web,php)