ftp_base::parselisting()publicWP 1.0

<!-- --------------------------------------------------------------------------------------- --> <!-- Public functions --> <!-- --------------------------------------------------------------------------------------- -->

Метод класса: ftp_base{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

$ftp_base = new ftp_base();
$ftp_base->parselisting( $line );
$line (обязательный)
-

Код ftp_base::parselisting() WP 6.5.2

function parselisting($line) {
	$is_windows = ($this->OS_remote == FTP_OS_Windows);
	if ($is_windows && preg_match("/([0-9]{2})-([0-9]{2})-([0-9]{2}) +([0-9]{2}):([0-9]{2})(AM|PM) +([0-9]+|<DIR>) +(.+)/",$line,$lucifer)) {
		$b = array();
		if ($lucifer[3]<70) { $lucifer[3]+=2000; } else { $lucifer[3]+=1900; } // 4digit year fix
		$b['isdir'] = ($lucifer[7]=="<DIR>");
		if ( $b['isdir'] )
			$b['type'] = 'd';
		else
			$b['type'] = 'f';
		$b['size'] = $lucifer[7];
		$b['month'] = $lucifer[1];
		$b['day'] = $lucifer[2];
		$b['year'] = $lucifer[3];
		$b['hour'] = $lucifer[4];
		$b['minute'] = $lucifer[5];
		$b['time'] = @mktime($lucifer[4]+(strcasecmp($lucifer[6],"PM")==0?12:0),$lucifer[5],0,$lucifer[1],$lucifer[2],$lucifer[3]);
		$b['am/pm'] = $lucifer[6];
		$b['name'] = $lucifer[8];
	} else if (!$is_windows && $lucifer=preg_split("/[ ]/",$line,9,PREG_SPLIT_NO_EMPTY)) {
		//echo $line."\n";
		$lcount=count($lucifer);
		if ($lcount<8) return '';
		$b = array();
		$b['isdir'] = $lucifer[0][0] === "d";
		$b['islink'] = $lucifer[0][0] === "l";
		if ( $b['isdir'] )
			$b['type'] = 'd';
		elseif ( $b['islink'] )
			$b['type'] = 'l';
		else
			$b['type'] = 'f';
		$b['perms'] = $lucifer[0];
		$b['number'] = $lucifer[1];
		$b['owner'] = $lucifer[2];
		$b['group'] = $lucifer[3];
		$b['size'] = $lucifer[4];
		if ($lcount==8) {
			sscanf($lucifer[5],"%d-%d-%d",$b['year'],$b['month'],$b['day']);
			sscanf($lucifer[6],"%d:%d",$b['hour'],$b['minute']);
			$b['time'] = @mktime($b['hour'],$b['minute'],0,$b['month'],$b['day'],$b['year']);
			$b['name'] = $lucifer[7];
		} else {
			$b['month'] = $lucifer[5];
			$b['day'] = $lucifer[6];
			if (preg_match("/([0-9]{2}):([0-9]{2})/",$lucifer[7],$l2)) {
				$b['year'] = gmdate("Y");
				$b['hour'] = $l2[1];
				$b['minute'] = $l2[2];
			} else {
				$b['year'] = $lucifer[7];
				$b['hour'] = 0;
				$b['minute'] = 0;
			}
			$b['time'] = strtotime(sprintf("%d %s %d %02d:%02d",$b['day'],$b['month'],$b['year'],$b['hour'],$b['minute']));
			$b['name'] = $lucifer[8];
		}
	}

	return $b;
}