PHP Cheat: File dan Folder

<?php
// mengecek keberadaan sebuah file
echo file_exists(‘dummy.txt’)?”Exist”:”Tidak”;

// menerima informasi tentang file
$file = ‘dumy.txt’;
$info = stat($file);
print_r($info);
echo “<br>type file = ” . filetype($file);
echo “<br>ukuran file = ” . filesize($file) . ” bytes”;
echo “<br>readable file = ” . (is_readable($file)?”Yes”:”No”);
echo “<br>writeable file = ” . (is_writeable($file)?”Yes”:”No”);
echo “<br>executable file = ” . (is_executable($file)?”Yes”:”No”);

// membaca file
$file = ‘dumy.txt’;
//baca data ke array
print_r(file($file));
//baca data ke string
echo file_get_contents($file);

// membaca data via network ->
/*bijak jika kita memecah menjadi bagian2 ->
agar tidak membebani netework
cara nya dengan membaca beberapa kilobyte
lalu menggabung nya menjadi sebuah kalimat yang utuh
*/

$fp = fopen(“network or internet/file.txt”, rb) or die(“can’t open file”);
while(!feof($fp)){
$dataStr .= fgets($fp, 1024); //1KB
}
fclose($fp) or die(“Cannot close file”);
echo $dataStr;

// membaca file di line tertentu
$data = file(‘dumy.txt’) or die(‘Gk bisa baca file’);
echo $data[0] . “<br>”; // baca line pertama
echo end($data) . “<br>”; // baca line terakhir
echo $data[4] . “<br>”; // baca line ke 5
$lines = array_slice($data, 1, 5);
echo implode(“<br>”, $lines); // lines 2-6

// menuliskan fungsi untuk membaca isi file
// gunakan fget() dan fseek()
function getLines($file, $startLineNum, $endLineNum){
if($endLineNum < $startLineNum)
die(“Ending line harus lebih besar atau sama dengan angka start”);
$lineCounter = 0;
$fp = fopen($file, “rb”) or die(“Gk bisa buka file”);

while(!feof($fp) && $lineCounter<=$endLineNum){
$lineCounter++;
$line = fgets($fp);
if($lineCounter >= $startLineNum && $lineCounter <= $endLineNum)
$lineData[] = $line;
}
fclose($fp) or die(“Gk bisa menutup file”);
return $lineData;
}
$lines = getLines(‘dumy.txt’, 2, 6);
print_r($lines);

// membaca range byte dari file
function getBytes($file, $startByte, $endByte){
if($endByte < $startByte)
die(“ending tidak boleh lebih besar dari start …”);
$fp = fopen($file, “rb”) or die(“Cannot Open File”);
fseek($fp, $startByte, SEEK_BYTE);
while(!(ftell($fp)>$endByte))
$data .= fgetc($fp);
fclose($fp) or die(“Cannot Close File”);
return $data;
}// dapatkan 10 bytes pertama
echo getBytes(“dumy.txt”, 0, 9);

// menghitung kata, dan character didalam file
// file_get_contents(), strlen(), str_word_count()
$file = “dumy.txt”;
$str = file_get_contents($file) or die(“Gk bisa baca file”); // masukan ke String
$arr = file($file) or die(“Cannot Read From File”); // masukan ke Array
echo “Counted ” . sizeof($arr) . ” line(s)<br>”; // menghitung baris
$numCharsSpaces = strlen($str);// menghitung karakter dengan spasi
echo “Counted $numCharsSpaces character(s) with spaces.<br>”;

// menulis ke file (overwrite)
$str = “I like U, married Yu Huhehehe”;
file_put_contents(‘dumy.txt’, $str) or die(“Tdk Bisa menulis ke File”);
echo “Berhasil menulis ke file”; // I like U, married Yu Huhehehe

// me-lock file sebelum menulisnya
$fp = fopen(‘dumy.txt’, “wb+”);
if(flock($fp, LOCK_EX)){
fwrite($fp, “decide u”) or die(“File tidak bisa ditulis”);
flock($fp, LOCK_UN);
} else {
die(“Tidak bisa melock file”);
}
// close file
fclose($fp) or die(“tidak dpt menutup file”);
echo “File berhasil di tulis”; //decide u

// menghapus baris kalimat pada file
$file = “dumy.txt”;
// baca file ke array
$data = file($file) or die(“tidak dapat membaca file”);
// buang baris ke 3
unset($data[2]);
// reindex array
$data = array_values($data);
// tulis kembali data ke file
file_put_contents($file, implode($data)) or die (“tidak bisa menulis file”);
echo “berhasil..”; //one two four <- dibaca kebawah

// melakukan scaning directory
$dir = ‘./feel’;
$fileList = scandir($dir) or die (“Err: Bukan direktory”);
// print nama file dan ukuran
foreach($fileList as $file){
if(is_file(“$dir/$file”) && $file != “.” && $file != “..”){
echo “$file: ” . filesize(“$dir/$file”) . “<br />”;
}
} // CV.docx: 106010 Devil.txt: …

// scaning direktory didalam direktory (dir dan sub dir)
function dirReader($dir){
if(!is_dir($dir)) { die(“$dir bukan direktori”);}
global $fileList;
$dh = opendir($dir) or die(“Tidak bisa buka direktory”);
// iterasi seluruh file didalam file
while(($file = readdir($dh)) !== false){
// filter out “.” and “..”
if($file != “.” && $file != “..”){
if(is_dir(“$dir/$file”)){
dirReader(“$dir/$file”);
} else {
$fileList[] = strrev(“$dir/$file”);
}
}

}
return $fileList;
}
$rs = dirReader(‘feel’);
print_r($rs);

// copy file
$src = “dumy.txt”;
$dst = “dumy.txt.bak”;

if(file_exists($src)){
copy($src, $dst) or die(“Error: tidak bisa mengcopy file $src”);
echo “Succes copied”;
} else {
die(“$src doesnt exists”);
}

// Copy remote file -> mengcopy dari server ke lokal

ini_set(‘max_execution_time’, 600);// menaikan batas waktu exsekusi
$remoteFile = “http://www.some.domain/remote.file.tgz&#8221;; // set URL file yang ingin didownload
$localFile = “local.file.tgz”; // setting lokal
// baca data dari remote
$data = file_get_contents($remoteFile) or die(“cannot read from remote”);
// tulis data ke lokal file
file_puts_contents($localFile, $data) or die(“tidak bisa menulis ke lokal”);
// keterangan sukses
echo “file [$remoteFile] succes copied to [$localFile]”;

//  mengcopy sebuah direktory
function copyRecursive($src, $dst){
if(!file_exists($src)){ die(“‘$src’ tidak valid”); }
if(!is_dir($dst)){ mkdir($dst); }

//  buka handler direktory

$dh = opendir($src) or die(“cannot open dir ‘$src'”);
// iterative over files in directory
while(($file = readdir($dh) !== false){
// filter out “.” dan “..”
if($file != “.” && $file != “..”){
if(is_dir($src/$file)){ //recursive
copyReqursive(“$src/$file”, “$dst/$file”);
} else {
copy(“$src/$file”, “$dst/$file”) or die (“cannot copy file ‘$file'”);
}
}
}
// close direktory
closedir($dh);
}
// copy direktory reqursively
copyReqursive(“www/template”, “www/site12”);
echo “Directory successfully copied”;

// menghapus file
function deleteFile($file){
if(file_exists($file)){
unlink($file) or die(“tidak bisa menghapus $file”);
echo “file berhasil dihapus”;
} else {
echo “file tidak ditemukan”;
}
}
$file = “dumy.txt”;
deleteFile($file);

// menghapus isi direktory dan sub direktory
function deleteReqursiveDir($dir){
if(!is_dir($dir)) die (“‘$dir’ bukan direktory”);
// direktory handler
$dh = opendir($dir) or die(“tidak bisa membuka direktory”);
// iterasi
while(($file = readdir($dh)) !== false){
if($file != “.” && $file != “..”){
if(is_dir(“$dir/$file”)){
deleteReqursiveDir(“$dir/$file”);
} else {
unlik(“$dir/$file”) or die(“tidak bisa menghapus: $dir/$file”);
}
}
}
// close direktory
closedir($dh);
// buang top-level direktory
rmdir($dir); // –> hanya berfungsi jika direktory kosong
// karena itu kita menciptakan langkah diatas
}
deleteReqursiveDir(“junk/you/”);
echo “direktory berhasil di hapus”;

// rename file dan direktori
$old = “home/my”;
$new = “home/new”;
rename($old, $new) or die(“file / direktory berhasil di hapus”);

// sorting file
$dir = “./test/a”;
if(!is_dir($dir)) {die (“‘$dir’ bukan direktory”);}
$dh = opendir($dir) or die(“tidakbisa membuka ‘$dir'”);
//iterasi seluruh file
while(($file = readdir($dh)) !== false){
if($file != “.” && $file != “..”){
$fileList[] = array(“name”=>$file, “size”=>filesize(“$dir/$file”), “date”=>filemtime(“$dir/$file”));
}
}
closedir($dh);

foreach($fileList as $key=>$value){
$name[$key] = $value[‘name’];
$size[$key] = $value[‘size’];
$data[$key] = $value[‘date’];
}
// sort by name
array_multisort($name, $fileList);
print_r($fileList);
// sort by data and size
array_multisort($date, $size, $fileList){
print_r($fileList);
}

// mencari file disebuah direktory
function searchReqursive($dir, $pattern){
if(!is_dir($dir)) {die(“‘$dir’ bukan direktory”); }
global $matchList; // menampung data yang didapat
$dh = opendir($dir) or die(“tidak bisa membuka direktory”);
// iterasi seluruh file di direktory
while(($file = readdir($dh)) !== false){
if($file != “.” && $file != “..”){
if(is_dir(“$dir/$file”){
searchReqursive(“$dir/$file”);
} else {
if(preg_match(“/$pattern/”, $file)){
$matchList[] = “$dir/$file”;
}
}
}
}
return $matchList;
}
// mencari file dengan nama ini
$fileList = searchReqursive(“c:/windows”, “ini”);
print_r($fileList);
?>

Published by

G3n1k

just to remember what i had known :)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s