Autor Zpráva
Pan X
Profil
Zdravím, prosím vás, mám script na výpis souborů (nepsal jsem ho, je součásti jednoho wysiwyg editoru) potřebuji ten výpis sežadit podle abecedy, ale nevede se mi to. Nemůžu se v tom scriptu vyznat.

Mohl by mi někdo poradit? Díky

Script

<?php
include('config.php');
include('fCopy.php');
include('fDelete.php');
$nextData = '';

function error($msg){

   //$msg = addslashes($msg);
	die('{status:0, msg:"'.$msg.'"}');
}

if(!isset($_POST['dir']) || !isset($_POST['action'])) error('nebyl zadán adresář nebo akce');
if(strpos($_POST['dir'], '../') !== false) error('nelze přejít o adresář nahoru: '. strpos('../', $_POST['dir']).' '.$_POST['dir']);

$adresa = $cfg['root'];
if(substr($cfg['root'], -1) != '/') $adresa .= '/';
$adresa2 = $_POST['dir'];
if(substr($adresa2, -1) != '/') $adresa2 .= '/';
$adresa .= $adresa2;


if($_POST['action'] == "rename" && isset($_POST['file']) && isset($_POST['name'])){

	$nazev = $_POST['name'];
	$file = $_POST['file'];

	if(empty($nazev)) error('Nebyl zadán žádný název.');
	if(strpos($nazev, '..') !== false) error("Název nesmí obsahovat znaky ../");

	if(!file_exists($cfg['root'].'/'.$file)) error('Soubor, který chcete přejmenovat neexistuje.');
	if(file_exists($adresa.'/'.$nazev)) error('Soubor s tímto názvem již existuje.');
	if(!rename($cfg['root'].'/'.$file, $adresa.'/'.$nazev)) error('Soubor se nepovedlo přejmenovat.');
}

if($_POST['action'] == "newDir" && isset($_POST['name'])){

	$sl = $adresa.'/'.$_POST['name'];

	$adresare = explode('/', $sl);
	$sl = implode(DIRECTORY_SEPARATOR, $adresare);

	if(is_dir($sl)) error('Složka z daným názvem již existuje');
	if(@!mkdir($sl, 0777)) error('Složku se nepovedlo vytvořit');
}

if($_POST['action'] == "paste" && isset($_POST['files']) && isset($_POST['type']) && isset($_POST['start'])){

   $pasteData = '';
   if(!is_numeric($_POST['start'])) $_POST['start'] = -1;

	for($i = 0; $i < count($_POST['files']); $i++){

	   if($i < $_POST['start']) continue;

	   if(isset($_POST['skip'])){

	      unset($_POST['skip']);
	      $_POST['start'] = -1;
	      continue;
	   }

		$src = $cfg['root'].'/'.$_POST['files'][$i];
		$newSrc = $adresa.'/'.basename($_POST['files'][$i]);

		//error($_POST['start'].' :: '.$i);
		//   error((is_file($newSrc) || is_dir($newSrc)).' :: '.($_POST['start'] != $i && $_POST['start'] != -2));
		if((is_file($newSrc) || is_dir($newSrc)) && $_POST['start'] != $i && $_POST['start'] != -2){

		   $pasteData .= 'pasteObj:{ok:false, position:'.$i.', goingLink:"'.basename($_POST['files'][$i]).'"},';
		   break;
		}


		//error($src . ' :: ' . $newSrc);
      copyFiles($src, $adresa) or error('Soubor '.basename($_POST['files'][$i]).' se nepovedlo zkopírovat.\n\nKopírování bylo zrušeno.', true);

		//copy($src, $newSrc) or error('Soubor '.basename($_POST['files'][$i]).' se nepovedlo zkopírovat.\n\nKopírování bylo zrušeno.');
		if($_POST['type'] == 'cut') deltree($src);

	}

	if($pasteData == '') $pasteData = 'pasteObj:{ok:true},';

	$nextData .= $pasteData;
}

if($_POST['action'] == "delete" && isset($_POST['files'])){

	for($i = 0; $i < count($_POST['files']); $i++){

		$src = $cfg['root'].'/'.$_POST['files'][$i];
		deltree($src) or error('Soubor '.basename($_POST['files'][$i]).' se nepovedlo odstranit.\n\Akce byla zrušena.');
	}
}

//if($_POST['action'] == "display"){


	$slozky = array();
	$soubory = array();
	$slozky2 = array();
	$soubory2 = array();
	if($_POST['dir'] != './') $slozky[] = '..';
	$slozky2 = $slozky;
	
	function search($adresa, $adresa2, &$slozky, &$soubory, &$slozky2, &$soubory2, $search = false){

		if(!is_dir($adresa)) error('Adresář, '.$adresa.' neexistuje.');
		$dir = opendir($adresa) or error('Adresář, '.$adresa.' se nepovedlo otevřít.');
		while($soubor = readdir($dir)){

			if($soubor == "." || $soubor == "..") continue;

			if(is_dir($adresa.'/'.$soubor)){

				if($search === false || strpos($soubor, $search) !== false){
					$slozky[] = $adresa.$soubor;
					$slozky2[] = $adresa2.$soubor;
				}
				if($search !== false) search($adresa.'/'.$soubor.'/', $adresa2.'/'.$soubor.'/', $slozky, $soubory, $slozky2, $soubory2, $search);
			}else{

				if($search === false || strpos($soubor, $search) !== false){
					$soubory[] = $adresa.$soubor;
					$soubory2[] = $adresa2.$soubor;
				}
			}
		}
	}
	
	if(isset($_POST['search'])) search($adresa, $adresa2, $slozky, $soubory, $slozky2, $soubory2, $_POST['search']);
	else search($adresa, $adresa2, $slozky, $soubory, $slozky2, $soubory2);

	echo '{';
	echo 'dirs:[';
	$pocet = 0;

	for($i = 0; $i < count($slozky); $i++){

		if($i != 0) echo ',';
	  	echo '{name:"'.$slozky2[$i].'", size:'.filesize($slozky[$i]).', time:'.filemtime($slozky[$i]).'}';
	}

	echo '],';
	echo 'files:[';

	for($i = 0; $i < count($soubory); $i++){

		if($i != 0) echo ',';
	  	echo '{name:"'.$soubory2[$i].'", size:'.filesize($soubory[$i]).', time:'.filemtime($soubory[$i]).'}';
	  	//echo '{name:"'.$soubory[$i].'", size:'.filesize($adresa.$soubory[$i]).', time:'.date('G:i:s j.n.Y', 1220301236).'}';
	  	//echo '{name:"'.$soubory[$i].'", size:'.filesize($adresa.$soubory[$i]).', time:'.date('G:i:s j.n.Y', filemtime($adresa.$soubory[$i])).'}';
	}

	echo '],';
	echo 'status:1,';
	echo $nextData;
	echo 'actualDir:"'.$_POST['dir'].'"';
	echo '}';
//}
?>


Předem díky všem.
Joker
Profil
Pan X:
Jestli to dobře chápu, tak funkce search() vrací do $soubory pole názvů souborů... takže by snad jen stačilo setřídit to pole pomocí
sort

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: