Cmd_api_file_manager

Djunity

Verified User
Joined
Mar 9, 2008
Messages
243
Location
Holland
Hi all,

Does anyone using the CMD_API_FILE_MANAGER function im having troubles to parse the output, i try'd
PHP:
parse_str($result,$a);
but that doesnt work also try'd
PHP:
$a = explode("&",$result);
and then
PHP:
array_chunk($a,10);
but becouse not all sub arrays are the same some are 10 but some have islink= what makes the sub array 11 instead of 10.

All tips are welcome,
 
Hi Alex,

Not really output is like:
PHP:
array(18) {
  ["/"]=>
  string(15) "date=1324133030"
  ["gid"]=>
  string(7) "testing"
  ["linkpath"]=>
  string(0) ""
  ["path"]=>
  string(36) "/backups/backup-Dec-14-2011-8.tar.gz"
  ["permission"]=>
  string(3) "640"
  ["showsize"]=>
  string(5) "68.3k"
  ["size"]=>
  string(5) "69935"
  ["truepath"]=>
  string(36) "/backups/backup-Dec-14-2011-8.tar.gz"
  ["type"]=>
  string(4) "file"
  ["uid"]=>
  string(7) "testing"
  ["/backups/backup-Dec-14-2011-1_tar_gz"]=>
  string(15) "date=1323884942"
  ["/backups/backup-Dec-14-2011-2_tar_gz"]=>
  string(15) "date=1323933270"
  ["/backups/backup-Dec-14-2011-3_tar_gz"]=>
  string(15) "date=1323885062"
  ["/backups/backup-Dec-14-2011-4_tar_gz"]=>
  string(15) "date=1323885122"
  ["/backups/backup-Dec-14-2011-5_tar_gz"]=>
  string(15) "date=1324216393"
  ["/backups/backup-Dec-14-2011-6_tar_gz"]=>
  string(15) "date=1323885242"
  ["/backups/backup-Dec-14-2011-7_tar_gz"]=>
  string(15) "date=1323885662"
  ["/backups/backup-Dec-14-2011-8_tar_gz"]=>
  string(15) "date=1323895683"
}

As you can see alle the files are here but all file details are missing for example there is only 1 permission key.

Basicly what i need is:

PHP:
array(11) {
  [0]=>
  array(10) {
    [0]=>
    string(29) "/.bash_logout=date=1322226962"
    [1]=>
    string(11) "gid=testing"
    [2]=>
    string(9) "linkpath="
    [3]=>
    string(18) "path=/.bash_logout"
    [4]=>
    string(14) "permission=644"
    [5]=>
    string(14) "showsize=0.03k"
    [6]=>
    string(7) "size=33"
    [7]=>
    string(22) "truepath=/.bash_logout"
    [8]=>
    string(9) "type=file"
    [9]=>
    string(11) "uid=testing"
  }
  [1]=>
  array(10) {
    [0]=>
    string(30) "/.bash_profile=date=1322226962"
    [1]=>
    string(11) "gid=testing"
    [2]=>
    string(9) "linkpath="
    [3]=>
    string(19) "path=/.bash_profile"
    [4]=>
    string(14) "permission=644"
    [5]=>
    string(14) "showsize=0.17k"
    [6]=>
    string(8) "size=176"
    [7]=>
    string(23) "truepath=/.bash_profile"
    [8]=>
    string(9) "type=file"
    [9]=>
    string(11) "uid=testing"
  }
  [2]=>
  array(10) {
    [0]=>
    string(24) "/.bashrc=date=1322226962"
    [1]=>
    string(11) "gid=testing"
    [2]=>
    string(9) "linkpath="
    [3]=>
    string(13) "path=/.bashrc"
    [4]=>
    string(14) "permission=644"
    [5]=>
    string(14) "showsize=0.12k"
    [6]=>
    string(8) "size=124"
    [7]=>
    string(17) "truepath=/.bashrc"
    [8]=>
    string(9) "type=file"
    [9]=>
    string(11) "uid=testing"
  }
  [3]=>
  array(11) {
    [0]=>
    string(25) "/.mozilla=date=1322226962"
    [1]=>
    string(11) "gid=testing"
    [2]=>
    string(8) "islink=0"
    [3]=>
    string(9) "linkpath="
    [4]=>
    string(14) "path=/.mozilla"
    [5]=>
    string(14) "permission=755"
    [6]=>
    string(14) "showsize=12.0k"
    [7]=>
    string(10) "size=12288"
    [8]=>
    string(18) "truepath=/.mozilla"
    [9]=>
    string(14) "type=directory"
    [10]=>
    string(11) "uid=testing"
  }
  [4]=>
  array(10) {
    [0]=>
    string(24) "/.shadow=date=1324116876"
    [1]=>
    string(8) "gid=mail"
    [2]=>
    string(9) "linkpath="
    [3]=>
    string(13) "path=/.shadow"
    [4]=>
    string(14) "permission=640"
    [5]=>
    string(14) "showsize=0.03k"
    [6]=>
    string(7) "size=34"
    [7]=>
    string(17) "truepath=/.shadow"
    [8]=>
    string(9) "type=file"
    [9]=>
    string(11) "uid=testing"
  }
  [5]=>
  array(11) {
    [0]=>
    string(24) "/backups=date=1323895711"
    [1]=>
    string(11) "gid=testing"
    [2]=>
    string(8) "islink=0"
    [3]=>
    string(9) "linkpath="
    [4]=>
    string(13) "path=/backups"
    [5]=>
    string(14) "permission=700"
    [6]=>
    string(15) "showsize=0.598M"
    [7]=>
    string(11) "size=626688"
    [8]=>
    string(17) "truepath=/backups"
    [9]=>
    string(14) "type=directory"
    [10]=>
    string(11) "uid=testing"
  }
  [6]=>
  array(11) {
    [0]=>
    string(21) "/daan=date=1324133030"
    [1]=>
    string(11) "gid=testing"
    [2]=>
    string(8) "islink=0"
    [3]=>
    string(9) "linkpath="
    [4]=>
    string(10) "path=/daan"
    [5]=>
    string(14) "permission=755"
    [6]=>
    string(14) "showsize=4.00k"
    [7]=>
    string(9) "size=4096"
    [8]=>
    string(14) "truepath=/daan"
    [9]=>
    string(14) "type=directory"
    [10]=>
    string(11) "uid=testing"
  }
  [7]=>
  array(11) {
    [0]=>
    string(24) "/domains=date=1322226965"
    [1]=>
    string(11) "gid=testing"
    [2]=>
    string(8) "islink=0"
    [3]=>
    string(9) "linkpath="
    [4]=>
    string(13) "path=/domains"
    [5]=>
    string(14) "permission=711"
    [6]=>
    string(13) "showsize=148k"
    [7]=>
    string(11) "size=151552"
    [8]=>
    string(17) "truepath=/domains"
    [9]=>
    string(14) "type=directory"
    [10]=>
    string(11) "uid=testing"
  }
  [8]=>
  array(11) {
    [0]=>
    string(21) "/imap=date=1322226962"
    [1]=>
    string(8) "gid=mail"
    [2]=>
    string(8) "islink=0"
    [3]=>
    string(9) "linkpath="
    [4]=>
    string(10) "path=/imap"
    [5]=>
    string(14) "permission=770"
    [6]=>
    string(14) "showsize=8.00k"
    [7]=>
    string(9) "size=8192"
    [8]=>
    string(14) "truepath=/imap"
    [9]=>
    string(14) "type=directory"
    [10]=>
    string(11) "uid=testing"
  }
  [9]=>
  array(11) {
    [0]=>
    string(28) "/public_html=date=1324116876"
    [1]=>
    string(11) "gid=testing"
    [2]=>
    string(8) "islink=1"
    [3]=>
    string(48) "linkpath=./domains/testdomeinnaam.nl/public_html"
    [4]=>
    string(17) "path=/public_html"
    [5]=>
    string(14) "permission=777"
    [6]=>
    string(14) "showsize=0.04k"
    [7]=>
    string(7) "size=39"
    [8]=>
    string(21) "truepath=/public_html"
    [9]=>
    string(14) "type=directory"
    [10]=>
    string(11) "uid=testing"
  }
}

This cant be done with array_chunk() like you can see some sub arrays have 10 keys some have 11 keys.
 
OK, that would mean that parse_str() is not a good solution.
Anyway you are free to make with it all you want or need.

PHP:
$data=urldecode($str);
 
A new block for a file starts with

Code:
/FILENAME=date=

see

Code:
/.bash_logout=date=1305551556&gid=admin&linkpath=&path=/.bash_logout&permission=644&showsize=0.03k&size=33&truepath=/.bash_logout&type=file&uid=admin&/.bash_profile=date=1305551550&gid=admin&linkpath=&path=/.bash_profile&permission=644&showsize=0.17k&size=176&truepath=/.bash_profile&type=file&uid=admin

so split the string with preg_match_all(), or any other way, into substrings:

Code:
/.bash_logout=date=1305551556&gid=admin&linkpath=&path=/.bash_logout&permission=644&showsize=0.03k&size=33&truepath=/.bash_logout&type=file&uid=admin

/.bash_profile=date=1305551550&gid=admin&linkpath=&path=/.bash_profile&permission=644&showsize=0.17k&size=176&truepath=/.bash_profile&type=file&uid=admin

...
 
So it would be

PHP:
$data=array_chunk(explode("&",urldecode($result)),10);

Thanks for your efford alex but allready done this and it aint working have a look at the output:

PHP:
array(13) {
  [0]=>
  array(10) {
    [0]=>
    string(29) "/.bash_logout=date=1281303500"
    [1]=>
    string(11) "gid=hosting"
    [2]=>
    string(9) "linkpath="
    [3]=>
    string(18) "path=/.bash_logout"
    [4]=>
    string(14) "permission=644"
    [5]=>
    string(14) "showsize=0.02k"
    [6]=>
    string(7) "size=24"
    [7]=>
    string(22) "truepath=/.bash_logout"
    [8]=>
    string(9) "type=file"
    [9]=>
    string(11) "uid=hosting"
  }
  [1]=>
  array(10) {
    [0]=>
    string(30) "/.bash_profile=date=1281303500"
    [1]=>
    string(11) "gid=hosting"
    [2]=>
    string(9) "linkpath="
    [3]=>
    string(19) "path=/.bash_profile"
    [4]=>
    string(14) "permission=644"
    [5]=>
    string(14) "showsize=0.17k"
    [6]=>
    string(8) "size=176"
    [7]=>
    string(23) "truepath=/.bash_profile"
    [8]=>
    string(9) "type=file"
    [9]=>
    string(11) "uid=hosting"
  }
  [2]=>
  array(10) {
    [0]=>
    string(24) "/.bashrc=date=1281303500"
    [1]=>
    string(11) "gid=hosting"
    [2]=>
    string(9) "linkpath="
    [3]=>
    string(13) "path=/.bashrc"
    [4]=>
    string(14) "permission=644"
    [5]=>
    string(14) "showsize=0.12k"
    [6]=>
    string(8) "size=124"
    [7]=>
    string(17) "truepath=/.bashrc"
    [8]=>
    string(9) "type=file"
    [9]=>
    string(11) "uid=hosting"
  }
  [3]=>
  array(10) {
    [0]=>
    string(25) "/.mozilla=date=1281299272"
    [1]=>
    string(11) "gid=hosting"
    [2]=>
    string(8) "islink=0"
    [3]=>
    string(9) "linkpath="
    [4]=>
    string(14) "path=/.mozilla"
    [5]=>
    string(14) "permission=755"
    [6]=>
    string(14) "showsize=12.0k"
    [7]=>
    string(10) "size=12288"
    [8]=>
    string(18) "truepath=/.mozilla"
    [9]=>
    string(14) "type=directory"
  }
  [4]=>
  array(10) {
    [0]=>
    string(11) "uid=hosting"
    [1]=>
    string(24) "/.shadow=date=1281304488"
    [2]=>
    string(8) "gid=mail"
    [3]=>
    string(9) "linkpath="
    [4]=>
    string(13) "path=/.shadow"
    [5]=>
    string(14) "permission=640"
    [6]=>
    string(14) "showsize=0.03k"
    [7]=>
    string(7) "size=34"
    [8]=>
    string(17) "truepath=/.shadow"
    [9]=>
    string(9) "type=file"
  }
  [5]=>
  array(10) {
    [0]=>
    string(11) "uid=hosting"
    [1]=>
    string(30) "/.spamassassin=date=1295217574"
    [2]=>
    string(8) "gid=mail"
    [3]=>
    string(8) "islink=0"
    [4]=>
    string(9) "linkpath="
    [5]=>
    string(19) "path=/.spamassassin"
    [6]=>
    string(14) "permission=771"
    [7]=>
    string(14) "showsize=1.50M"
    [8]=>
    string(12) "size=1572864"
    [9]=>
    string(23) "truepath=/.spamassassin"
  }
  [6]=>
  array(10) {
    [0]=>
    string(14) "type=directory"
    [1]=>
    string(11) "uid=hosting"
    [2]=>
    string(24) "/Maildir=date=1303543426"
    [3]=>
    string(8) "gid=mail"
    [4]=>
    string(8) "islink=0"
    [5]=>
    string(9) "linkpath="
    [6]=>
    string(13) "path=/Maildir"
    [7]=>
    string(14) "permission=770"
    [8]=>
    string(14) "showsize=10.8M"
    [9]=>
    string(13) "size=11374592"
  }
  [7]=>
  array(10) {
    [0]=>
    string(17) "truepath=/Maildir"
    [1]=>
    string(14) "type=directory"
    [2]=>
    string(11) "uid=hosting"
    [3]=>
    string(24) "/backups=date=1323868911"
    [4]=>
    string(11) "gid=hosting"
    [5]=>
    string(8) "islink=0"
    [6]=>
    string(9) "linkpath="
    [7]=>
    string(13) "path=/backups"
    [8]=>
    string(14) "permission=700"
    [9]=>
    string(14) "showsize=2.07G"
  }
  [8]=>
  array(10) {
    [0]=>
    string(15) "size=2225868800"
    [1]=>
    string(17) "truepath=/backups"
    [2]=>
    string(14) "type=directory"
    [3]=>
    string(11) "uid=hosting"
    [4]=>
    string(24) "/domains=date=1323895794"
    [5]=>
    string(11) "gid=hosting"
    [6]=>
    string(8) "islink=0"
    [7]=>
    string(9) "linkpath="
    [8]=>
    string(13) "path=/domains"
    [9]=>
    string(14) "permission=711"
  }
  [9]=>
  array(10) {
    [0]=>
    string(15) "showsize=129.6M"
    [1]=>
    string(14) "size=135901184"
    [2]=>
    string(17) "truepath=/domains"
    [3]=>
    string(14) "type=directory"
    [4]=>
    string(11) "uid=hosting"
    [5]=>
    string(21) "/imap=date=1323895794"
    [6]=>
    string(8) "gid=mail"
    [7]=>
    string(8) "islink=0"
    [8]=>
    string(9) "linkpath="
    [9]=>
    string(10) "path=/imap"
  }
  [10]=>
  array(10) {
    [0]=>
    string(14) "permission=770"
    [1]=>
    string(14) "showsize=3.18G"
    [2]=>
    string(15) "size=3409559552"
    [3]=>
    string(14) "truepath=/imap"
    [4]=>
    string(14) "type=directory"
    [5]=>
    string(11) "uid=hosting"
    [6]=>
    string(20) "/new=date=1305449419"
    [7]=>
    string(11) "gid=hosting"
    [8]=>
    string(8) "islink=0"
    [9]=>
    string(9) "linkpath="
  }
  [11]=>
  array(10) {
    [0]=>
    string(9) "path=/new"
    [1]=>
    string(14) "permission=755"
    [2]=>
    string(14) "showsize=4.00k"
    [3]=>
    string(9) "size=4096"
    [4]=>
    string(13) "truepath=/new"
    [5]=>
    string(14) "type=directory"
    [6]=>
    string(11) "uid=hosting"
    [7]=>
    string(28) "/public_html=date=1323895794"
    [8]=>
    string(11) "gid=hosting"
    [9]=>
    string(8) "islink=1"
  }
  [12]=>
  array(8) {
    [0]=>
    string(51) "linkpath=./domains/123hostingservice.nl/public_html"
    [1]=>
    string(17) "path=/public_html"
    [2]=>
    string(14) "permission=777"
    [3]=>
    string(14) "showsize=0.04k"
    [4]=>
    string(7) "size=42"
    [5]=>
    string(21) "truepath=/public_html"
    [6]=>
    string(14) "type=directory"
    [7]=>
    string(11) "uid=hosting"
  }
}

If you look at array[2] you see that it contains 10 keys thats good, but if you look at array[3] there is a value "islink=0" what should make this sub array 11 instead of 10.

So thats basicly my problem
 
Then try this

PHP:
$data=preg_split("/\/[^&]*=(date=*)/", urldecode($result), -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);

if you want more help, you'd better hire me.
 
Got what i need for now thanks alot ill keep your offer in mind

the sollution for me is like
PHP:
	public function FileManager($data=array()) {

		$data2 = preg_split("/\/[^&]*=(date=*)/", urldecode($this->login('/CMD_API_FILE_MANAGER',$data)), -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
		foreach($data2 as $key => $value) {
			if($value != 'date=') {
				$a[] = "date=".substr($value,0,-1);
			}
		}
		foreach ($a as $key => $value) {
			parse_str($value,$b);
			$c[] = $b;
		}
		echo "<pre>";
			var_dump($c);
		echo "</pre>";
	}
 
Back
Top