content = $cont;
return $this;
}
public function setContent($cont){
return $this->rArr($cont);
}
public function getTable($content = '', $reg = "|
|si"){
preg_match($reg, (empty($content) ? $this->content : $content), $match);
return $this->rArr($match[1]);
}
public function getRows($reg = '|]*>|i', $content = ''){
$result = preg_split($reg, (empty($content) ? $this->content : $content));
return $this->rArr($result);
}
public function getColumns($reg = "|]*>([^>]*) | |si"){
$rarr = array();
foreach($this->content as $player){
preg_match_all($reg, $player, $matches);
$rarr[] = $matches[1];
}
return $this->rArr($rarr);
}
public function shift(){
array_shift($this->content);
return $this;
}
public function sum($bykey){
$rarr = array();
foreach($this->content as $player){
$cur_val = $player[ $bykey ];
if(!isset($rarr[ $cur_val ]))
$rarr[ $cur_val ] = $player;
else{
foreach($player as $key => $value){
if(is_numeric($value))
$rarr[ $cur_val ][ $key ] += $value;
}
}
}
return $this->rArr($rarr);
}
public function convertChar($from, $to, $avoidKeys = array()){
foreach($this->content as &$player){
foreach($player as $key => &$value){
if(!in_array($key, $avoidKeys))
$value = str_replace($from, $to, $value);
}
}
return $this;
}
public function removeHtml($reg){
$rarr = array();
foreach($this->content as $player){
$rarr[] = trim(preg_replace($reg, '', $player));
}
return $this->rArr($rarr);
}
public function getInputValue($name, $content){
preg_match("|]*name=['\"]{$name}['\"][^>]*)>|", $content, $match);
return $this->getMatch("|value=['\"](.*?)['\"]|", $match[1]);
}
public function setStartEndDate(){
$cur_day = date('d');
$this->start_date = $cur_day == '01' ? date('Y-m', strtotime('-1 month')).'-01' : date('Y-m').'-01';
$this->end_date = date('Y-m-d');
return $this;
}
public function setCurMonth($override = array(), $date = '', $format = '%b'){
$date = empty($date) ? $this->start_date : $date;
if(empty($override))
$this->month = strftime($format, strtotime($date));
else{
$month_num = (int)strftime('%m', strtotime($date));
$this->month = $override[ $month_num - 1 ];
}
return $this;
}
public function nextMonth($format = '%m'){
return $this->getFuture("+1 month", $format);
}
public function getFuture($modifier = "+1 month", $format = '%m'){
return strftime($format, strtotime($modifier));
}
public function setCurYear($date = '', $format = '%y'){
$date = empty($date) ? $this->start_date : $date;
$this->year = strftime($format, strtotime($date));
return $this;
}
public function getMatch($reg, $content){
preg_match($reg, $content, $match);
return $match[1];
}
public function getTag($tag, $content, $end_tag = ''){
$end_tag = empty($end_tag) ? $tag : $end_tag;
return $this->getMatch("|<$tag>(.+?)$end_tag>|si", $content);
}
public function getOptionValue($content, $label, $modifier = ''){
return $this->getAttrValue($content, 'option', 'value', $label, $modifier);
}
public function getAttrValue($content, $tag, $attr_name, $tag_content = '[^<]*', $modifier = ''){
return $this->getMatch("|<$tag [^>]*$attr_name=['\"](.*?)['\"][^>]*>$tag_content$tag>|$modifier", $content);
}
public function getContent(){
return $this->content;
}
public function pop(){
array_pop($this->content);
return $this;
}
public function trim(){
foreach($this->content as &$player){
foreach($player as &$field)
$field = trim($field);
}
return $this;
}
public function addTo($add, $to){
foreach($this->content as &$player){
$player[ $to ] += trim($player[ $add ]);
}
return $this;
}
public function rmDollarTrim($value){
return trim(str_replace('$', '', $value));
}
public function isNumeric($value){
return is_numeric( str_replace(',', '.', $this->rmDollarTrim($value)) );
}
public function hasPlayer($username, $players = null, $key = 'handle'){
$players = empty($players) ? $this->content : $players;
foreach($players as $player){
if($player[$key] == $username)
return true;
}
return false;
}
public function merge($content){
return $this->rArr(array_merge($this->content, $content));
}
public function clean(){
$rarr = array();
foreach($this->content as $player){
$ok = false;
foreach($player as $field){
if($this->isNumeric($field))
$ok = true;
}
if($ok)
$rarr[] = $player;
}
return $this->rArr($rarr);
}
public function keepWhere($keep_key, $keep_value){
$rarr = array();
foreach($this->content as $player){
if(is_array($keep_value)){
if(in_array($player[ $keep_key ], $keep_value))
$rarr[] = $player;
}else if($player[ $keep_key ] == $keep_value)
$rarr[] = $player;
}
return $this->rArr($rarr);
}
}