Siapapun yang punya website pasti pengen menaikan trafik search engine yang akan menuntun user menuju site mereka. Kamu gak bisa cuma dengan membalikan telapak tangan dan mengharap trafik search engine yang banyak, kamu harus bekerja buat itu, dengan mencari perhatian search engine.
Continue reading »

Kemarin saya buat modul untuk mengkompresi file2 diserver dan di download. Ceritanya sih, mau buat seperti kayak file manager, jadi select multiple file trus di zip dan otomatis di donlod. Sebelum kemana2, CI yang aku gunakan adalah versi 1.6.3.

Enaknya kalo pake CI nih, kalo untuk fitur semacam itu, proses yang aku lakukan cukup sampe di level class controller aja. jadi setelah selesai gak perlu load halaman htmlnya lagi. Mungkin kalo masih pake coding PHP biasa sih, begitu pilih file nya, trus di submit ke URL yang mroses, otomatis halamannya akan render lagi, sekaligus mroses inputan dari submit tadi.

Pada awalnya waktu men-zip multiple file, proses berhasil dengan sempurna. Dengan menggunakan metode

$this->zip->read_file($parentpath.$namafile);

File tersebut langsung dibaca isinya dan dimasukan dalam archive zip sementara, menunggu aksi terakhir apakah nanti di download

$this->zip->download($down_namafile);

apa disimpan

$this->zip->archive($zip_namafile);

Sekarang yang menjadi permasalahan adalah pada waktu item yang dipilih adalah sebuah direktori, memang benar fungsi ini menjalankan tugasnya membaca isi direktori lalu menjadikan dalam satu zip file.

Namun tugas itu dijalankan tidak cukup baik. Misal begini, ada direktori A dengan isi nama file FileA, FileB, dst. Maka nanti setelah dizip, nama file dalam zip berubah menjadi AFileA, AFileB, dst. Meskipun ukuran file nya sama dengan yang asli, tapi tetep saja tidak boleh begitu.

function read_dir($path)
{
  if ($fp = @opendir($path))
  {
    while (FALSE !== ($file = readdir($fp)))
    {
      if (@is_dir($path.$file) && substr($file, 0, 1) != '.')
      {
        $this->read_dir($path.$file."/");
      }
      elseif (substr($file, 0, 1) != ".")
      {
        if (FALSE !== ($data = file_get_contents($path.$file)))
        {
          $this->add_data(str_replace("\\", "/", $path).$file, $data);
        }
      }
    }
    return TRUE;
  }
}

coba diganti menjadi seperti ini

function read_dir($path)
{
  if ($fp = @opendir($path))
  {
    while (FALSE !== ($file = readdir($fp)))
    {
      if (@is_dir($path.$file) && substr($file, 0, 1) != '.')
      {
        $this->read_dir($path.$file."/");
      }
      elseif (substr($file, 0, 1) != ".")
      {
        if (FALSE !== ($data = file_get_contents($path."/".$file)))
        {
          $this->add_data(str_replace("\\", "/", $path)."/".$file, $data);
        }
      }
    }
    return TRUE;
  }
}

Lihat ada penambahan “/” di beberapa bagian function itu. Akhirnya fungsi berjalan seperti yang diharapkan. Pada CI 1.7.0 nampaknya bug ini belum diberesin, soalnya aku compare 1.7.0 dan 1.6.3, library zip.php tidak mengalami perubahan.

Semoga membantu.

Link Pembunuh Page Rank adalah sebuah ungkapan yang paling cocok (mungkin), untuk link yang dapat mengakibatkan PR blog kita terhempas. lho katanya semakin banyak link semakin bagus menurut search engine (ulasan lengkapnya baca di : Page Rank Vs Dofollow Comment) Lha kok ini malah ada link pembunuh, bahaya dong.Justru kita-lah yang menempatkan killer link ini. Kita jarang perhatian terhadap link-link pembunuh PR ini nangkring di blog kita. Continue reading »

© 2010 Catatan (PHP) Suffusion WordPress theme by Sayontan Sinha