Archive for April 2008

Memproses Direktori Dan Subdirektori 29.04.08

Masalah : Paparkan fail – fail dalam suatu direktori dan subdirektori.

<pre>
<?php
// function untuk proses direktori dan subdirektori
// dan paparkan senarai secara hierarki
function printTree($dir, $depth=0) {
    // periksa sama ada direktori sah
    if (!is_dir($dir)) { die("Bukan suatu direktori!"); }

    // buka direktori
    $dh = opendir($dir) or die ("Direktori tidak dapat dibuka!");

    // ulang antara fail dalam direktori
    while (($file = readdir($dh)) !== false)  {
        // tapis "." dan ".."
        if ($file != "." && $file != "..") {
            if (is_dir("$dir/$file")) {
                // jika ini suatu subdirektori
                // paparkan dan buka subdirektori
                echo str_repeat("  ", $depth) . " [$file]\n";
                printTree("$dir/$file", ($depth+1));
            } else     {
                // jika ini suatu fail
                // paparkan
                echo str_repeat("  ", $depth) . " $file\n";
            }
        }
    }
}

// proses dan papar direktori
printTree('./direktori/');
?>
</pre>

Memproses Direktori 24.04.08

Masalah : Mendapatkan maklumat fail – fail dalam suatu direktori.
PHP function yang digunakan : scandir()

<?php
// tetapkan direktori
$dir = './direktori';

// dapatkan kandungan direktori sebagai tatasusunan
$fileList = scandir($dir) or die ("Bukan suatu direktori!");

// paparkan nama fail dan saiz
foreach ($fileList as $file) {
    if (is_file("$dir/$file") && $file != '.' && $file != '..') {
        echo "$file : " . filesize("$dir/$file") . " bait<br />";
    }
}
?>

Singkirkan Baris Dari Fail 20.04.08

Masalah : Menyingkirkan baris dari fail sekiranya nombor baris diberikan.

PHP function yang digunakan : file() dan file_put_contents()

<?php
// tetapkan nama fail
$file = "fail.txt";

// baca fail sebagai tatasusunan
$data = file($file) or die("Fail tidak dapat dibaca!");

// singkirkan baris ketiga
unset ($data[2]);

// indeks kembali tatasusunan
$data = array_values($data);

// tulis data ke dalam fail
file_put_contents($file, implode($data)) or die("Fail tidak dapat dibaca!");
echo "Fail berjaya ditulis!";
?>

Menulis String Ke Dalam Fail 14.04.08

Masalah : Menulis string ke dalam suatu fail.

PHP function yang digunakan : file_put_contents()

<?php
// tetapkan string untuk ditulis
$data = "All the world's a stage\r\nAnd all the men and women merely players";

// tulis string ke dalam fail
file_put_contents('fail.txt', $data) or die("Fail tidak dapat ditulis!");
echo "Fail berjaya ditulis!";
?>

Mengira Jumlah Baris, Perkataan dan Aksara 13.04.08

Masalah : Mengira jumlah baris, perkataan dan aksara dalam suatu fail.

PHP function yang digunakan : file_get_contents(), strlen() dan str_word_count()

<?php
// tetapkan nama fail
$file = "fail.txt";

// baca kandungan fail secara string
$str = file_get_contents($file) or die ("Fail tidak dapat dibaca!");

// baca kandungan fail secara tatasusunan
$arr = file ($file) or die ("Fail tidak dapat dibaca!");

// kira jumlah baris
echo sizeof($arr) . " baris telah dikira.<br />";

// kira jumlah aksara termasuk ruang kosong
$numCharsSpaces = strlen($str);
echo "$numCharsSpaces aksara termasuk ruang kosong telah dikira.<br />";

// kira jumlah aksara tidak termasuk ruang kosong
$newStr = ereg_replace('[[:space:]]+', '', $str);
$numChars = strlen($newStr);
echo "$numChars aksara tidak termasuk ruang kosong telah dikira.<br />";

// kira jumlah perkataan
$numWords = str_word_count($str);
echo "$numWords perkataan telah dikira.<br />";
?>