panduan dan referensi kamus fungsi php5 + cd
TRANSCRIPT
vii
DAFTAR ISI
Kata Pengantar ............................................................................. v Daftar Isi ..................................................................................... vii
BAB 1 Mengenal PHP.......................................................... 1
1.1 Apakah PHP Itu?...........................................................1 1.2 Apa Saja yang Dapat Dilakukan dengan PHP? .............2 1.3 Prinsip Kerja PHP..........................................................3 1.4 Apa yang Diperlukan untuk Mempelajari PHP?.............5
BAB 2 Instalasi Webserver, PHP, dan MySQL ...................... 7
2.1 Instalasi Webserver Apache 2.0.45...............................8 2.2 Instalasi Database Server MySQL ...............................10 2.3 Konfigurasi Database MySQL .....................................10 2.4 Konfigurasi PHP dengan Webserver Apache ...............11 2.5 Menginstal PHPED 4.6................................................13
BAB 3 Struktur Penulisan Script PHP ................................ 17
BAB 4 Mengenal Variabel dalam Script PHP ...................... 21
4.1 Pengertian Variabel.....................................................21 4.2 Penggunaan Variabel dengan Form ............................22
BAB 5 Tipe Data dalam Script PHP ................................... 25
5.1 Tipe Data ...................................................................25
viii
5.1.1 Tipe Data Integer..........................................25 5.1.2 Tipe Data Floating Point ...............................25 5.1.3 Tipe Data String ...........................................26 5.1.4 Tipe Data Array............................................27 5.1.5 Tipe Data Object ..........................................30
BAB 6 Operator dalam Script PHP .................................... 31
6.1 Operator Aritmatika....................................................31 6.2 Operator Increment/Decrement ..................................31 6.3 Operator String...........................................................33 6.4 Operator Bitwise.........................................................33 6.5 Operator Perbandingan...............................................34 6.6 Operator Logika .........................................................34 6.7 Operator Presedence ..................................................35 6.8 Operasi Nilai Variabel dari Form HTML.......................35
BAB 7 Mengenal Pernyataan Kontrol ................................. 39
7.1 Pernyataan If ..............................................................39 7.1.1 Fungsi If dalam Satu Statement....................39 7.1.2 Fungsi If… Else….........................................40 7.1.3 Fungsi If… Elseif… Else ...............................41
7.2 Fungsi Pernyataan Switch...........................................43 7.3 Fungsi Loop ...............................................................44
7.3.1 While Loop ...................................................44 7.3.2 Do… While ...................................................45 7.3.3 For Loop ......................................................46
BAB 8 Bekerja dengan Array ............................................. 49
8.1 Pengertian Array.........................................................49 8.2 Menciptakan dan Membaca Data Array ......................51 8.3 Array Multidimensi .....................................................51 8.4 Fungsi Pengolah Array ...............................................52
8.4.1 Menambah Data Array .................................53 8.4.2 Menggabung Data Array ..............................53 8.4.3 Mengurutkan Data Array ..............................54 8.4.4 Menghapus Data Array.................................55 8.4.5 Membandingkan Data AntarArray ................56 8.4.6 Memotong Data Array ..................................56 8.4.7 Menjumlahkan Data Angka Array.................58
ix
8.4.8 Mendeklarasikan Data Array ke dalam Variabel.........................................59
BAB 9 Fungsi String ......................................................... 61
9.1 Memanipulasi Tanda Backslash “\” pada Teks ...........61 9.1.1 Menambah Tanda Backslash “\” di Depan
Karakter Tertentu .........................................61 9.1.2 Menghilangkan Tanda Backslash “\” ............63
9.2 Fungsi untuk Memanipulasi Kode HTML.....................64 9.2.1 Fungsi nl2br .................................................64 9.2.2 Fungsi strip_tags ..........................................65 9.2.3 Fungsi htmlspecialchars() ............................67 9.2.4 Fungsi quotemeta.........................................68 9.2.5 Fungsi htmlentities dan html_entity_decode .69
9.3 Memotong dan Menggabung String ............................70 9.3.1 Fungsi explode.............................................70 9.3.2 Fungsi split...................................................71 9.3.3 Fungsi implode.............................................72 9.3.4 Fungsi join ...................................................73 9.3.5 Fungsi strtok ................................................73
9.4 Membandingkan dan Mengganti String.......................74 9.4.1 Fungsi strstr .................................................74 9.4.2 Fungsi strpos................................................75 9.4.3 Fungsi stripos...............................................76 9.4.4 Fungsi count_chars ......................................77 9.4.5 Fungsi strlen.................................................78 9.4.6 Fungsi strspn................................................78 9.4.7 Fungsi strrev ................................................80 9.4.8 Fungsi substr_count .....................................81 9.4.9 Fungsi ereg, eregi, dan stristr .......................81 9.4.10 Fungsi ereg_replace, eregi_replace, dan
str_replace....................................................86 9.4.11 Fungsi str_ireplace .......................................87 9.4.12 Fungsi str_pad..............................................88 9.4.13 Fungsi str_word_count..................................90 9.4.14 Fungsi substr_replace...................................91 9.4.15 Fungsi str_repeat..........................................92 9.4.16 Fungsi str_shuffle .........................................93 9.4.17 Fungsi wordwrap ..........................................94
x
9.4.18 Fungsi Mengubah Bentuk Huruf ...................95 9.4.19 Fungsi Menghapus Spasi pada Data String...97
9.5 Fungsi Enkripsi dan Integritas Data ............................99 9.5.1 Fungsi crc32 ................................................99 9.5.2 Fungsi md5 ................................................100 9.5.3 Fungsi sha1................................................101
BAB 10 Bekerja dengan Fungsi Waktu............................... 103
10.1 Memeriksa Kebenaran Data Tanggal ........................103 10.2 Menciptakan Data Tanggal dan Waktu .....................106
10.2.1 Fungsi date()..............................................106 10.2.2 Fungsi date dengan Dua Argumen .............109 10.2.3 Menciptakan Data Tanggal dan Waktu dengan Fungsi getdate ...............................110 10.2.4 Mengambil Data Waktu dengan mktime.....112 10.2.5 Menciptakan Data Waktu dengan strtotime 113
BAB 11 Menciptakan Fungsi ............................................. 115
11.1 Pengertian Fungsi .....................................................115 11.2 Membuat Konversi Data Angka Terbilang.................118
BAB 12 Mengolah File dan Direktori .................................. 121
12.1 Mengolah File ...........................................................121 12.1.1 Memeriksa Keberadaan File .......................121 12.1.2 Mengakses File...........................................122 12.1.3 Membaca Isi File ........................................123 12.1.4 Mengubah Isi File .......................................125 12.1.5 Menyalin dan Meng-upload File..................126 12.1.6 Membaca Indentitas File.............................129 12.1.7 Menampilkan Lebar dan Panjang File Gambar ...............................................131 12.1.8 Menampilkan Gambar dengan Ukuran Berbeda.............................133 12.1.9 Mengganti Nama File .................................134 12.1.10 Mengganti Nama File dengan Koneksi FTP ..................................135 12.1.11 Men-download File .....................................136 12.1.12 Menghapus File ..........................................139 12.1.13 Membaca Waktu Terakhir File Diakses.......140
xi
12.1.14 Mengambil Komponen Nama File dan Nama Direktori .....................................................141
12.2 Mengolah Direktori ...................................................142 12.2.1 Mengubah Direktori Aktif............................142 12.2.2 Membaca Isi Direktori.................................142 12.2.3 Membaca Direktori Aktif.............................144 12.2.4 Menciptakan Direktori Baru........................144 12.2.5 Menghapus Direktori ..................................145
12.3 Membuat Program Aplikasi Berbagi File ...................145
BAB 13 Bekerja dengan Pernyataan Include....................... 149
BAB 14 Membuat Counter dan Jajak Pendapat .................. 153
14.1 Membuat Counter .....................................................153 14.1.1 Counter Sederhana.....................................154 14.1.2 Counter dengan Gambar ............................156
14.2 Membuat Jajak Pendapat .........................................157 14.2.1 Membuat Formulir Jajak Pendapat.............158 14.2.2 Membuat Script Proses Jajak Pendapat ......159 14.2.3 Membuat Script Hasil Jajak Pendapat ........160 14.2.4 Halaman Administrator ..............................163 14.2.5 Halaman Ubah Data ...................................163 14.2.6 Script Proses Ubah Data.............................165
BAB 15 Operasi Matematika ............................................. 167
15.1 Fungsi Matematika ...................................................167 15.1.1 Fungsi abs..................................................167 15.1.2 Fungsi acos................................................168 15.1.3 Fungsi asin.................................................168 15.1.4 Fungsi atan ................................................169 15.1.5 Fungsi cos..................................................170 15.1.6 Fungsi sin...................................................170 15.1.7 Fungsi tan ..................................................171 15.1.8 Fungsi deg2rad ..........................................171 15.1.9 Fungsi rad2deg ..........................................171 15.1.10 Fungsi floor ................................................172 15.1.11 Fungsi ceil..................................................173 15.1.12 Fungsi round ..............................................174 15.1.13 Fungsi min dan max...................................175
xii
15.1.14 Fungsi fmod ...............................................175 15.1.15 Fungsi log ..................................................176 15.1.16 Fungsi log10 ..............................................176 15.1.17 Fungsi pow.................................................176 15.1.18 Fungsi sqrt .................................................177
15.2 Fungsi Acak Bilangan ..............................................178 15.2.1 Fungsi getrandmax.....................................178 15.2.2 Fungsi rand ................................................178
BAB 16 Menggunakan Sesi dan Cookies............................ 181
16.1 Penggunaan Sesi ......................................................181 16.1.1 Membuat Sesi.............................................182 16.1.2 Membuat Sesi dengan Fungsi
Session_Register()......................................183 16.1.3 Memeriksa Registrasi Variabel Sesi.............186 16.1.4 Menghapus Data Sesi .................................187 16.1.5 Menghapus Variabel Sesi............................188
16.2 Penggunaan Cookies ................................................188 16.2.1 Membuat Cookies.......................................189 16.2.2 Set Cookies dengan Batas Waktu...............191 16.2.3 Menghapus Cookies ...................................193
BAB 17 Mengirim Email .................................................... 195
17.1 Formulir Mengirim Email ..........................................195 17.2 Script Mengirim Email ..............................................198 17.3 Mengirim Email dengan Tembusan ..........................199
BAB 18 Menggunakan Database MySQL ........................... 201
18.1 Koneksi dengan Database ........................................202 18.2 Membuat Database...................................................203 18.3 Membuat Tabel.........................................................204 18.4 Tipe Data Field.........................................................206
18.4.1 Tipe Data Angka ........................................206 18.4.2 Tipe Data Teks/String ................................207 18.4.3 Tipe Data Tanggal......................................209
18.5 Mengubah Struktur Tabel .........................................209 18.5.1 Menambah Field Baru ................................209 18.5.2 Mengganti Nama Field ...............................210 18.5.3 Menghapus Field dari Tabel........................211
xiii
18.6 Memasukkan Data dalam Database .........................211 18.7 Membaca dan Menampilkan Data ............................216
18.7.1 Membaca Data dengan Klausa WHERE......218 18.7.2 Penggunaan Klausa WHERE dengan LIKE...............................................220 18.7.3 Menggunakan Klausa WHERE dengan AND ..............................................221 18.7.4 Menggunakan Klausa WHERE dengan OR .................................................222 18.7.5 Menggunakan Klausa WHERE dengan Pembanding Bilangan ....................223 18.7.6 Menggunakan Klausa ORDER BY...............224 18.7.7 Mengunakan Klausa GROUP BY.................225 18.7.8 Menggunakan Klausa LIMIT........................226 18.7.9 Menggunakan Klausa DISTINCT ................227
18.8 Mengubah Data ........................................................228 18.8.1 Membuat Script Tampilan Data ..................229 18.8.2 Membuat Script Form Ubah Data ...............230 18.8.3 Script untuk Mengubah Data ......................233
18.9 Membuat Script untuk Menghapus Data ...................234 18.9.1 Script Halaman Daftar Barang....................235 18.9.2 Script untuk Menghapus Data ....................235
BAB 19 Judul HTTP dan Variabel Terdefinisi...................... 239
19.1 Variabel Terdefinisi ...................................................239 19.2 Mengirim Judul HTTP ...............................................242
BAB 20 Aplikasi Backup Data MySQL............................... 245
20.1 Membuat Halaman Depan ........................................245 20.2 Membuat Script Verifikasi Login ...............................248 20.3 Membuat Halaman Daftar Tabel ...............................248 20.4 Membuat Script Ekspor Data ke Excel .....................253
BAB 21 Mengakses Data dBase ........................................ 257
21.1 Pengenalan dBase ....................................................257 21.2 Fungsi-Fungsi dBase................................................258
21.2.1 Fungsi dBase_create ..................................258 21.2.2 Fungsi dBase_open ....................................259 21.2.3 Fungsi dBase_close....................................259
xiv
21.2.4 Fungsi dBase_numfields.............................259 21.2.5 Fungsi dBase_numrecords .........................260 21.2.6 Fungsi dBase_get_record ...........................260 21.2.7 Fungsi dBase_add_record...........................260 21.2.8 Fungsi dBase_delete_record .......................261 21.2.9 Fungsi dBase_replace_record .....................261 21.2.10 Fungsi dBase_pack ....................................262
BAB 22 Bekerja dengan Gambar ....................................... 263
22.1 Pengenalan Pustaka GD ...........................................263 22.2 Penggunaan Header .................................................264 22.3 Menciptakan Gambar ...............................................264 22.4 Menentukan Warna...................................................264 22.5 Membuat Garis .........................................................265 22.6 Menciptakan Lingkaran, Elips, atau Busur................266 22.7 Membuat Polygon.....................................................267 22.8 Membuat Kotak ........................................................268 22.9 Menampilkan Teks ...................................................270
22.9.1 Menampilkan Sebuah Karakter...................270 22.9.2 Menampilkan Sebuah Teks ........................271 22.9.3 Menentukan Jenis Font ..............................272
22.10 Menciptakan Gambar dari File Gambar ....................273 22.11 Memeriksa Ukuran Gambar ......................................274 22.12 Membuat Gambar Transparan ..................................275 22.13 Membuat Piksel ........................................................276
BAB 23 Aplikasi dengan Gambar....................................... 277
23.1 Membuat Counter dalam Bentuk Gambar.................277 23.2 Membuat Grafik dengan Gambar dari MySQL...........278 23.3 Membuat Grafik Jajak Pendapat...............................281 23.4 Membuat Grafik dalam Bentuk Pie............................284
BAB 24 Publikasi Website ................................................. 289
Tentang Penulis.........................................................................293
121
BAB 12
MENGOLAH FILE DAN
DIREKTORI
Bab ini akan membahas tentang pengolahan file, yaitu membuka, membaca, mengisi, meng-upload dan men-download file. PHP cukup handal dalam menangani masalah ini. Banyak fungsi-fungsi yang dapat digunakan untuk mengolah file. Sebagian dari fungsi-fungsi tersebut dan yang sering digunakan dalam pembuatan web-site interaktif akan dibahas dalam bab ini.
12.1 Mengolah File
12.1.1 Memeriksa Keberadaan File
Untuk mengetahui apakah suatu file ada atau tidak, dan untuk me-meriksa apakah benar-benar merupakan sebuah file, maka Anda dapat membuat sebuah program kecil untuk mengecek keberadaan file-file tersebut.
Untuk mengecek keberadaan file, Anda dapat menggunakan fungsi file_exists() yang akan mengecek apakah sebuah file ada atau tidak. Bentuk sintaksnya adalah:
file_exists($nama_file);
122
Keterangan:
$nama_file adalah nama file yang diperiksa keberadaannya.
Untuk lebih jelasnya, berikut adalah contoh script kecil yang ber-fungsi untuk memeriksa apakah file yang dimaksud script itu ada atau tidak.
<? // periksa_file.php // mengecek file file_data.php apakah ada atau tidak dalam satu folder. // buat file dengan nama file_data.php dalam satu folder dengan file ini. $file="file_data.php"; echo"Memeriksa keberadaan file.<hr>"; if(file_exists($file)){ echo"File $file ada."; }else{ echo"File $file tidak ada."; } ?>
Apabila file file_data.php telah Anda buat, maka dalam browser akan ditampilkan keterangan bahwa file file_data.php ada seperti pada Gambar 12.1 berikut:
Gambar 12.1 Hasil pemeriksaan keberadaan file
12.1.2 Mengakses File
Fungsi yang digunakan untuk mengakses file adalah fopen(). Bentuk sintaksnya adalah:
fopen(Nama_File, Mode_Akses);
123
Keterangan:
Nama File adalah string dengan isi nama file yang akan dibuka.
Mode Akses adalah argumen mode operasi yang akan dilaku-kan terhadap file tersebut.
Mode akses lain yang dapat Anda gunakan untuk mengakses file adalah:
Modus Operasi
“r” Membuka file untuk dibaca; pointer akan diletakkan pada awal file.
“r+” Membuka file untuk dibaca dan diubah isinya; pointer akan diletakkan pada awal file.
“w” Membuka file untuk diubah; pointer akan diletakkan pada awal file. File akan dibuat jika file belum ada.
“w+” Membuka file untuk diubah dan dibaca; pointer akan diletak-kan pada awal file. File akan dibuat jika file belum ada.
“a” Membuka file untuk diubah; pointer akan diletakkan pada ak-hir file. File akan dibuat jika file belum ada.
“a+” Membuka file untuk diubah dan dibaca; pointer akan diletak-kan pada akhir file. File akan dibuat jika file belum ada.
Fungsi ini hanya bersifat membuka atau melakukan koneksi de-ngan file saja. Untuk membaca, menulis, mengganti, dan menam-pilkan isi dari sebuah file, harus dirangkai dengan fungsi yang lain, antara lain fungsi fread(), fputs(), file() dan lain sebagainya yang akan dibahas pada bab ini juga.
12.1.3 Membaca Isi File
Setelah mengakses file, tentunya proses berikutnya adalah mem-baca informasi atau data yang ada dalam file tersebut. Untuk membaca file, Anda dapat menggunakan fungsi fread(). Bentuk sintaksnya adalah:
fread(File, Mode_akses);
124
Keterangan:
File adalah string atau variabel yang berisikan hasil operasi akses terhadap sebuah file.
Mode_akses adalah angka yang menunjukkan panjang karak-ter yang dibaca.
Contoh penggunaannya dalam sebuah script: <? // baca_file.php // membuka dan membaca file file_data.php $file="file_data.php"; if(file_exists($file)){ $buka=fopen($file, "r"); $baca=fread($buka, 2096); Echo"Isi data dari file_data.php adalah:<hr>"; echo"$baca"; }else{ echo"File $file tidak ada."; } ?>
Apabila program dijalankan dalam browser, maka akan tampak seperti pada gambar berikut.
Gambar 12.2 Hasil pembacaan data pada file file_data.php
Perhatikan pada fungsi fread($baca, 2096), dalam fungsi tersebut dinyatakan bahwa variabel $buka mengandung fungsi fopen(file, “r”) yaitu membuka file file_data.php dengan parameter “r”.
125
12.1.4 Mengubah Isi File
Untuk mengubah atau menambah isi dari sebuah file, Anda dapat menggunakan fungsi fputs(). Urutan proses penulisan data ke da-lam file adalah: file dibuka terlebih dahulu dengan menggunakan fungsi fopen(), kemudian file dapat diisi dengan menggunakan fungsi fputs(). Bentuk sintaksnya adalah:
fputs(variabel_awal, data_tambahan);
Keterangan :
Variabel_awal adalah variabel yang berisikan data hasil pem-bacaan dari sebuah file.
Data_tambahan adalah data string atau variabel yang mengan-dung data dan akan ditambahkan ke dalam file.
Untuk lebih jelasnya, coba saja dech ketik script berikut yang menggunakan fungsi fputs.
<? // fputs.php echo"Tambah data<hr>"; $buka=fopen("./data.htm", "a+"); $tambahan="data tambahan yang dimasukkan"; fputs($buka, $tambahan); if(fputs){ echo"data tambahan sukses dimasukkan."; } ?>
Setelah Anda ketik dan simpan dalam file, coba panggil dengan browser. Kalau penulisan Anda benar, hasilnya akan seperti pada Gambar 12.3.
Gambar 12.3 Menuliskan data ke dalam file dengan fungsi fputs()
126
Selanjutnya, buka file dokumen dengan menggunakan program teks editor, maka data tambahan akan dituliskan pada posisi pa-ling bawah, karena pada saat membuka file menggunakan para-meter “a+”, yaitu pointer diletakkan pada akhir file.
Apabila Anda menggunakan parameter “w+”, maka data akan di-letakkan pada awal pointer dan akan mengganti data keseluruhan yang ada pada file data.htm. Buka file data.htm menggunakan program teks editor, maka akan terlihat seperti pada gambar beri-kut ini.
Gambar 12.4 Hasil tambahan data pada file data.htm pada akhir teks
12.1.5 Menyalin dan Meng-upload File
Untuk menyalin atau meng-upload file, Anda dapat menggunakan fungsi copy(). File yang akan disalin dapat diambil dari file system atau dari server, atau diambil dari form HTML. Bentuk sintaksnya adalah:
copy(sumber, tujuan);
Keterangan:
Sumber adalah variabel atau string yang berisikan lokasi asal file yang akan disalin tersebut.
Tujuan adalah lokasi di mana file itu akan disalin.
127
Berikut adalah contoh menyalin file dari komputer klien ke kom-puter server.
<html><head><title>Copy File</title></head> <body> <? // copy.php if($submit){ copy($file,"./data/".$file_name); echo"<center>Copy File Sukses</center>"; }else{ ?> <form method="POST" enctype="multipart/form-data" action="copy.php"><p align="center"><br> Copy File : <input type="file" name="file" size="20"><br><br> <input type="submit" value="COPY" name="submit"></p> </form> <? } ?> </body></html>
Script ini akan menyalin file yang dipilih dari komputer klien dan dimasukkan ke folder data.
Gambar 12.5 Form untuk menyalin file
Klik tombol Pilih untuk membuka kotak dialog yang akan diguna-kan untuk memilih file yang akan disalin. Lihat Gambar 12.6.
Pilih salah satu file yang akan disalin, kemudian klik tombol Copy, sehingga file akan disalin ke dalam folder ./data/ yang masih jadi satu lokasi dengan file copy.php. Lihat Gambar 12.7.
128
Gambar 12.6 Kotak dialog daftar file untuk disalin
Gambar 12.7 Menyalin file
Hasil akhir dari proses tersebut adalah:
Gambar 12.8 File telah sukses disalin
129
12.1.6 Membaca Indentitas File
Selain menyalin file, PHP juga mampu mendeteksi file yang ada pada server. Informasi yang dapat diambil antara lain adalah men-cari ukuran file, mencari nama file, dan juga mencari jenis file.
Berikut adalah beberapa fungsi yang digunakan untuk menampil-kan informasi tentang sebuah file.
$lokasifile_name
Keterangan:
Merupakan lokasi file yang akan diperiksa dan tambahan _name untuk mengambil nama file tersebut.
$lokasifile_size
Keterangan:
Digunakan untuk mengambil ukuran file dalam satuan byte.
$lokasifile_type
Keterangan:
Digunakan untuk mengambil jenis file tersebut.
Berikut ini adalah contoh menampilkan file gambar beserta infor-masi tentang file dan keterangan tentang sebuah file ke dalam browser.
<html><head> <meta http-equiv="Content-Language" content="en-us"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Upload file</title></head> <body><div align="center"> <table border="1" width="58%" cellspacing="0" cellpadding="0" id="table1"> <? if(isset($kirim)){ $salin=copy($file,"./data/".$file_name); echo"<tr><td> <p align=\"center\"> <img border=\"0\" src=\"./data/$file_name\"></td></tr> <tr>"; ?> <td><p align="center">Nama file : <?=$file_name?> <br> Ukuran file : <?=$file_size?> byte<br> Jenis file : <?=$file_type?> </td></tr> <?}else{?> <tr><td><form method="POST" enctype="multipart/form-data"
130
action="upload2.php"><p align="center"><br> Pilih File <input type="file" name="file" size="44"> <input type="submit" value="KIRIM" name="kirim"></p></form></td></tr> <?}?> </table></div></body></html>
Dari script di atas, simpan pada dokumen webserver dengan nama unpoad2.php dan Anda coba jalankan menggunakan browser. Hasilnya dapat kita lihat seperti tampak pada Gambar 12.9 berikut.
Gambar 12.9 Tampilan form untuk upload file gambar
Kemudian Anda coba untuk memasukkan file ke dalam form up-load dengan menekan tombol Pilih. Dari jendela browse, Anda dapat memilih nama file gambar yang dapat Anda upload.
Gambar 12.10 Jendela Browse
131
Sebagai contoh, penulis mengambil file gambar, selanjutnya tekan open untuk memasukkan data file gambar ke form. Kemudian te-kan tombol KIRIM yang ada pada form tersebut. Hasilnya akan tampak pada gambar berikut ini.
Gambar 12.11 Hasil upload dan pembacaan file yang telah di-upload
Ada yang perlu Anda perhatikan pada script di atas, yaitu bagian script PHP yang digunakan untuk menampilkan identitas file.
Variabel $file_name berfungsi untuk mengambil nama dari file yang terpilih. Variabel $file_size digunakan untuk menampilkan besar ukuran file dalam satuan byte, dan variabel $file_type digu-nakan untuk menampilkan tipe file.
12.1.7 Menampilkan Lebar dan Panjang File Gambar
Script PHP memiliki fungsi yang dapat digunakan untuk membaca ukuran panjang dan lebar dari file gambar. Fungsi PHP ini adalah:
getimagesize(file_gambar);
Keterangan:
File_gambar adalah lokasi dan nama file yang diperiksa pan-jang dan lebar ukurannya.
132
Biasanya fungsi ini digabung dengan fungsi yang lain untuk men-deklarasikan hasil pembacaan panjang dan lebarnya. Fungsi ter-sebut adalah List.
Berikut adalah contoh penggunaan fungsi getimagesize untuk membaca panjang dan lebar file gambar.
<? // ukuran.php // mengambil ukuran panjang lebar file gambar $file="./data/rafiz.jpg"; list($lebar, $tinggi) = getimagesize($file); echo"<center> <img src=\"$file\"> <br>"; echo "lebar= $lebar pixel"; echo "<br>tinggi= $tinggi pixel"; ?>
Script di atas diawali dengan mendeklarasikan nama dan lokasi file yang dimasukkan pada variabel $file, yaitu “./data/rafiz.jpg”. Artinya, nama file yang akan diperiksa lebar dan panjangnya ada-lah file rafiz.jpg dan berlokasi pada direktori data. Selanjutnya, menggunakan fungsi List untuk mendeklarasikan dua variabel, yaitu $lebar dan $panjang untuk menyimpan hasil pembacaan data dari fungsi getimagesize. Yang terakhir adalah menampilkan hasil pembacaan data file tersebut menggunakan fungsi echo. Hasilnya dapat Anda lihat seperti pada Gambar 12.12 berikut ini.
Gambar 12.12 Hasil upload dan pembacaan file yang telah di-upload
133
12.1.8 Menampilkan Gambar dengan Ukuran Berbeda
Berikut adalah contoh script aplikasi untuk menampilkan gambar yang sama, namun berbeda ukuran lebar dan besar. Walaupun ukurannya lebih kecil, namun masih memperhitungkan skala an-tara lebar dan panjangnya.
<? // ubah_ukuran.php // mengubah ukuran gambar. $file="./data/rafiz.jpg"; list($lebar, $tinggi) = getimagesize($file); echo"<center>Ukuran sebenarnya:<br> <img src=\"$file\"> <br>"; echo "lebar= $lebar pixel"; echo "<br>tinggi= $tinggi pixel"; $skala=150; if($lebar > $skala){ $l=$skala; $t=$tinggi*((100-((($lebar-$skala)/$lebar)*100))/100); }else{ $l=$lebar; $t=$tinggi; } echo"<br>Setelah ukuran dikecilkan:<br><img src=\"$file\" width=\"$l\" height=\"$t\">"; $t=number_format($t,1, ',', ' '); echo"<br>lebar = $l <br>Tinggi = $t"; ?>
File dan fungsi untuk membaca lebar dan tinggi gambar yang di-gunakan, masih sama dengan contoh script sebelumnya, namun ditambahkan beberapa script yang digunakan untuk menentukan skala perubahan lebar dan panjang untuk gambar yang kedua, seperti potongan script berikut ini.
$skala=150; if($lebar > $skala){ $l=$skala; $t=$tinggi*((100-((($lebar-$skala)/$lebar)*100))/100); }else{ $l=$lebar; $t=$tinggi; }
Script tersebut menggunakan operasi matematika, sehingga meng-hasilkan persentase besar ukuran lebar dan tinggi yang proposional. Kunci dari besar atau kecilnya gambar ditentukan dengan besar nilai dari variabel $skala.
134
Gambar 12.13 Hasil script pengubah ukuran file
Script ini biasanya digunakan untuk membuat website gallery yang menampilkan gambar-gambar hasil pemotretan, atau juga diguna-kan untuk menampilkan gambar pada halaman headline berita.
12.1.9 Mengganti Nama File
Ada kalanya pada sebuah script program membutuhkan untuk mengganti nama file, baik yang ada di webserver maupun yang ada di lokal komputer. Untuk mengganti nama file, Anda dapat menggunakan sebuah fungsi yang sudah disediakan oleh PHP. Bentuk sintaksnya adalah:
rename(nama_file_lama, nama_file_baru);
135
Keterangan:
Nama_file_lama adalah lokasi dan nama file yang akan diganti namanya.
Nama_file_baru diisi dengan lokasi dan nama baru file.
Berikut adalah contoh penggunaan fungsi rename untuk meng-ganti nama file baru.
<? // ubah_nama.php $file_lama="./data/rafiz.jpg"; // lokasi dan nama file lama $file_baru="./data/fauza.jpg"; // lokasi dan nama baru $ubah=rename($file_lama,$file_baru); if($ubah){ echo"Nama file rafiz.jpg, telah diganti dengan fauza.jpg."; }else{ echo"Gagal mengganti nama."; } ?>
12.1.10 Mengganti Nama File dengan Koneksi FTP
Selain menggunakan fungsi rename untuk mengganti nama file, Anda juga dapat menggunakan fungsi ftp_rename(). Fungsi ftp_rename() digunakan khusus untuk mengganti nama file yang ada pada webserver dan memiliki fasilitas ftpserver. Kenapa harus demikian? Karena sebelum mengganti nama file, Anda harus me-lakukan koneksi dengan ftpserver terlebih dahulu. Berikut adalah bentuk fungsi ftp_rename tersebut.
ftp_rename(koneksi, nama_file_lama, nama_file_baru);
Keterangan:
Koneksi adalah sebuah fungsi yang digunakan untuk melaku-kan koneksi dengan ftpserver.
Nama_file_lama adalah lokasi dan nama file yang akan diganti namanya.
Nama_file_baru diisi dengan lokasi dan nama baru file.
Berikut contoh script yang menggunakan fungsi ftp_rename().
136
<?php $file_lama = 'data_lama.txt'; $file_baru = 'data_baru.txt'; $ftp_server="localhost"; $username="nic"; $password="3266"; // pengaturan koneksi $koneksi = ftp_connect($ftp_server); // login dengan username dan password $login = ftp_login($koneksi, $username, $password); // ganti nama lama dengan yang baru if (ftp_rename($koneksi, $file_lama, $file_baru)) { echo "Sukses mengganti nama $file_lama dengan $file_baru\n"; } else { echo "Tidak berhasil mengganti nama $file_lama dengan $file_baru\n"; } // tutup koneksi ftp_close($koneksi); ?>
Script di atas diawali dengan mendeklarasikan nama file lama, nama file pengganti, ftp server, username ftp server, dan password untuk koneksi ke ftp server. Selanjutnya script akan melakukan koneksi dengan ftpserver melalui fungsi ftp_connect dan dilanjut-kan login dengan ftp_login menggunakan host ftpserver, username, dan password yang sudah dibuat pada ftpserver.
Tahap berikutnya, membuat script untuk mengganti nama file de-ngan fungsi ftp_rename($koneksi, $nama_lama, $nama_baru); Yang terakhir adalah memutuskan koneksi ftpserver dengan fungsi ftp_close();
12.1.11 Men-download File
Setelah Anda dapat meng-upload dan mengganti nama file, tentu-nya belum lengkap apabila Anda belum dapat membuat script un-tuk men-download file. Suatu contoh, Anda ingin membuat sebuah halaman khusus untuk men-download file gambar, dengan hanya menggunakan sebuah hyperlink. Setelah hyperlink tersebut dipilih, hasilnya bukan muncul jendela download untuk menyimpan file hasil download, tetapi akan membuka file gambar tersebut pada jendela browser.
137
Nah, untuk mengatasi permasalahan ini Anda harus mencari solusi yang tepat, yaitu menggunakan script khusus. Berikut script yang digunakan untuk men-download file tersebut.
<? // Contoh program untuk download // download.php $file="./data/".$id; $tipe=explode(".",$id); $tipe_file="$tipe[1]"; Header("Content-Type:application/$tipe_file"); Header("Content-Length:".filesize($file)); Header("Content-Disposition: Attachment; filename=$id"); readfile($file); ?>
Sebelum Anda menjalankan script download di atas, Anda buat terlebih dahulu halaman web yang berisikan hyperlink yang me-nuju alamat file download di atas. Selain itu, Anda juga harus me-nyiapkan beberapa file yang dijadikan sebagai file data download. Dalam kasus ini, penulis menggunakan file gambar dengan nama fauza.jpg, file kompresi data.zip, dan file html, yaitu data.html.
Anda buat terlebih dahulu script untuk halaman hyperlink down-load seperti di bawah ini:
<html> <head> <title>Halaman Download</title> </head> <body> <p>Klik Hyperlink dibawah ini untuk download</p> <hr> <p><a href="download.php?id=fauza.jpg">Data gambar</a> | <a href="download.php?id=data.zip">Data Zip</a> | <a href="download.php?id=data.html">Data HTML</a></p> </body> </html>
Perhatikan pada setiap alamat target hyperlink. Semua mengarah ke file download.php, yaitu file yang digunakan untuk menyimpan script download di atas. Selain itu, masing-masing target hyperlink memiliki sebuah variabel id dengan nilai nama file yang akan di-download. Jalankan halaman_download.php pada browser.
Untuk mencoba men-download file, Anda dapat memilih salah satu hyperlink yang ada pada halaman_download berikut ini.
138
Gambar 12.14 Halaman untuk men-download file
Berikutnya akan ditampilkan kotak dialog download yang berisi-kan informasi tentang file yang Anda download, yaitu:
File adalah nama file yang akan di-download.
Server adalah webserver atau lokasi di mana file tersebut se-belum di-download.
Jenis adalah tipe file yang akan di-download.
Ukuran adalah besar file yang akan di-download.
Buka atau open berisikan program aplikasi untuk membuka file tersebut apabila Anda pilih buka atau open.
Gambar 12.15 Kotak dialog men-download file
139
Selain informasi file yang akan di-download, pada kotak dialog download tersebut juga menampilkan beberapa tombol, yaitu Buka, Simpan, Batal, dan Bantuan. Yang perlu Anda perhatikan adalah tiga tombol dengan fungsi yang berbeda-beda.
Tombol Buka dipilih apabila Anda ingin membuka file yang akan di-download. Tombol Simpan digunakan untuk menyimpan file yang di-download ke komputer user. Sedangkan tombol Batal di-gunakan untuk membatalkan perintah download.
Pilih Simpan apabila Anda ingin men-download sebuah file dari internet, karena file yang Anda pilih akan tersimpan terlebih dahulu ke komputer lokal dan dapat Anda buka setelah download selesai, selain itu proses download akan lebih cepat. Setelah Anda tekan tombol Simpan, akan terbuka kotak dialog Save as untuk menen-tukan lokasi penyimpan file seperti pada gambar berikut.
Gambar 12.16 Kotak dialog Save as
12.1.12 Menghapus File
Untuk menghapus file, Anda dapat menggunakan fungsi unlink. Penggunaannya dapat Anda lihat sebagai berikut.
unlink(nama_file);
140
Keterangan:
Nama_file adalah lokasi dan nama file yang akan dihapus.
Fungsi unlink tersebut memiliki nilai balik:
True apabila file berhasil dihapus.
False apabila file gagal dihapus.
12.1.13 Membaca Waktu Terakhir File Diakses
PHP memiliki sebuah fungsi yang digunakan untuk memeriksa waktu terakhir file tersebut diakses. Pengertian diakses adalah apa-bila file tersebut diciptakan, diubah isinya, atau juga dibaca isinya. Bentuk sintaksnya adalah:
fileatime(nama_file);
Keterangan:
Nama_file adalah lokasi dan nama file yang diperiksa.
Nilai hasil dari fungsi fileatime ini adalah jumlah detik yang dihitung dari tanggal 1 Januari 1970.
Apabila Anda ingin menampilkan waktu kapan sebuah file diubah isinya, Anda bisa menggunakan fungsi filectime() dan filemtime(). Bentuk sintaksnya adalah:
filectime(nama_file);
filemtime(nama_file);
Keterangan:
Nama_file adalah lokasi dan nama file yang diperiksa.
Berikut adalah contoh penggunaan fungsi fileatime. <?php // akses.php // memeriksa waktu terakhir file diakses $file="./data/fauza.jpg"; $periksa=fileatime($file); echo"Menampilkan waktu file terakhir di akses<hr>"; echo"Waktu akses file fauza.jpg adalah:<br>"; echo date("d-m-Y, h:m:s"); ?>
141
Script itu menggunakan file gambar dengan nama fauza.jpg seba-gai contoh file yang diperiksa. Hasilnya dapat Anda lihat seperti pada Gambar 12.17 berikut ini.
Gambar 12.17 Hasil pemeriksaan waktu terakhir file diakses
12.1.14 Mengambil Komponen Nama File dan Nama Direktori
Ada kalanya Anda ingin mengambil nama file dari sebuah URL. Untuk menyelesaikan masalah ini, Anda dapat menggunakan fungsi basename. Bentuk sintaksnya adalah:
basename(lokasi_file);
Keterangan:
Lokasi_file adalah path yang menunjuk lokasi dan nama file.
Contohnya adalah:
basename(“./data/nilai.php”);
Maka akan menghasilkan “nilai.php”.
Apabila Anda ingin mengambil nama direktori dari sebuah path, Anda dapat menggunakan fungsi dirname. Bentuk sintaksnya:
dirname(lokasi_file);
142
Keterangan:
Lokasi_file adalah path yang menunjuk lokasi dan nama file.
Contohnya adalah:
dirname(“./data/nilai.php”);
Maka akan menghasilkan “./data”.
12.2 Mengolah Direktori
Selain mengolah file, PHP juga dapat mengolah direktori. Antara lain mengubah direktori, membaca direktori, membaca objek di-rektori, membaca direktori aktif, membuat direktori, dan meng-hapus direktori.
12.2.1 Mengubah Direktori Aktif
Untuk mengubah direktori aktif, Anda dapat mengunakan sebuah fungsi yang diberi nama chdir. Bentuk sintaksnya adalah:
chdir(nama_direktori);
Hasil dari fungsi di atas adalah:
True apabila operasi berhasil dilaksanan.
False apabila operasi gagal dilaksanakan.
12.2.2 Membaca Isi Direktori
Yang dimaksud dengan membaca direktori adalah memeriksa dan menampilkan isi dari sebuah direktori. Untuk membaca direktori ini melibatkan beberapa fungsi PHP.
Langkah pertama adalah membuka direktori menggunakan fungsi opendir. Bentuk sintaksnya adalah:
opendir(nama_direktori);
143
Keterangan:
Nama_direktori adalah mengacu pada direktori yang akan di-baca isinya.
Fungsi di atas digunakan untuk melakukan koneksi dengan direk-tori saja. Jadi belum dapat menampilkan data yang ada di dalam-nya. Untuk membaca data yang ada dalam direktori, dapat meng-gunakan fungsi readdir. Bentuk sintaksnya adalah:
readdir(direktori_yang_dibuka);
Keterangan:
Direktori_yang_dibuka adalah hasil dari fungsi opendir yang dapat disimpan pada sebuah variabel.
Hasil dari fungsi readdir adalah berupa string yang berisikan daftar data dalam direktori tersebut.
Untuk menutup direktori, kita dapat menggunakan fungsi closedir. Bentuk sintaksnya adalah:
closedir(direktori_yang_dibuka);
Keterangan:
Direktori_yang_dibuka adalah hasil dari fungsi opendir yang dapat disimpan pada sebuah variabel.
Untuk lebih jelasnya Anda dapat membuat script seperti berikut. <?php // baca_dir.php // membaca dan menampilkan isi direktori echo"Isi direktori data<hr>"; if ($handle = opendir('./data/')) { while (false !== ($file = readdir($handle))) { echo "$file<br>"; } closedir($handle); } ?>
Script di atas adalah membaca file yang ada pada direktori data. Jika Anda jalankan pada browser, hasilnya dapat dilihat seperti Gambar 12.18.
144
Gambar 12.18 Hasil pembacaan data dalam direktori
12.2.3 Membaca Direktori Aktif
Untuk mendapatkan nama direktori yang sedang Anda akses, Anda dapat menggunakan fungsi getcwd.
getcwd();
Keterangan:
Fungsi ini tidak memiliki parameter.
Hasil dari fungsi ini adalah nama direktori yang sedang aktif atau yang sedang Anda akses.
12.2.4 Menciptakan Direktori Baru
Untuk membuat sebuah direktori, Anda dapat menggunakan fungsi mkdir. Bentuk sintaksnya adalah:
mkdir(direktori, mode)
Keterangan: Direktori adalah lokasi dan nama direktori yang akan dibuat.
Mode adalah pola hak akses yang menjadi atribut dari direktori tersebut. Pada sistem Windows, mode ini tidak berlaku.
145
12.2.5 Menghapus Direktori
Jika Anda ingin menghapus sebuah direktori, Anda dapat meng-gunakan fungsi rmdir. Bentuk sintaksnya adalah:
rmdir(nama_direktori);
Keterangan: Nama_direktori adalah nama direktori yang akan dihapus.
Apabila berhasil akan bernilai True, dan apabila gagal akan menghasilkan nilai False.
12.3 Membuat Program Aplikasi Berbagi File
Program yang akan kita buat ini adalah sebuah program yang ber-fungsi untuk berbagi file antarpengguna program. Yang dimaksud pengguna adalah user yang mengakses program. Setiap user yang mengakses program ini dapat men-download dan juga dapat meng-upload file, sehingga dapat diambil oleh user lain. Selain itu user juga dapat menghapus file yang sudah tidak dibutuhkan. Berikut beberapa file yang akan kita buat berdasarkan fungsinya.
1. index.php
2. download.php
3. hapus.php
Mari kita pelajari dari masing-masing file tersebut, serta script yang tersimpan di dalamnya. Halaman index.php selain menjadi halaman utama dari program berbagi file, juga berisikan script login, form upload file, dan juga script yang digunakan untuk mem-baca file yang berada dalam direktori data.
<center> <? if($submit){ if(file_exists("data/$file_name")){ $dt=date("s"); $nama="$dt $file_name"; }else{ $nama="$file_name"; } $kopi=copy($file,"data/".$nama); }?> <html><head><title>Transfer File</title></head><body> <form method="POST" enctype="multipart/form-data"
146
action="index.php"><p><input type="file" name="file" size="20"><input type="submit" value="KIRIM" name="submit"></p></form> <div align="center"><table border="1" width="496" cellspacing="1"> <tr><td colspan="2" bgcolor="#A3CCE4"><p align="center"><b>Nama File</b></td></tr> <?php if ($handle = opendir('./data/')) { echo "<br>"; while (false !== ($file = readdir($handle))) { if($file!=="." && $file !==".."){ echo "<tr><td width=\"369\"><p style=\"margin-left: 10px\"><a href=\"download.php?id=$file\">$file</a></td> <td width=\"114\"><p align=\"center\"><a href=\"hapus.php?id=$file\">Hapus</a></td></tr>"; } } while ($file = readdir($handle)) { echo "$file\n"; } closedir($handle); } ?> </table></div></body></html>
Script index di atas cukup panjang, diawali dengan fungsi if, yaitu: if($submit){
Fungsi if ini digunakan untuk untuk memeriksa, apakah user me-nekan tombol submit atau belum. Apabila user menekan tombol submit, maka script akan dilanjutkan dengan perintah di bawahnya. Namun apabila user baru membuka halaman index ini, maka akan ditampilkan form upload dari potongan script paling bawah dari script index ini.
if(file_exists("data/$file_name")){
Selanjutnya script akan memeriksa keberadaan file dengan nama yang sama dalam server dan nama file yang akan di-upload. Tujuannya adalah mengantisipasi adanya masalah tertimpanya file lama dengan file yang baru di-upload. Apabila file tersebut memi-liki nama yang sama, maka script akan menjalankan peritah beri-kutnya.
Script selanjutnya adalah beberapa fungsi yang digunakan untuk mengakses direktori. Script tersebut diawali dengan perintah:
if ($handle = opendir('./data/')) {
Potongan script di atas berfungsi untuk membuka sebuah direktori dengan nama data menggunakan fungsi opendir().
147
Selanjutnya script ini diikuti fungsi readdir() yang berfungsi untuk membaca isi direktori. Hasil dari fungsi ini adalah menampilkan nama file atau direktori yang ada pada direktori yang diperiksa.
Yang terakhir, menggunakan fungsi clodedir() untuk menutup di-rektori yang telah dibaca. Berikut adalah tampilan file index.php apabila dijalankan pada browser.
Gambar 12.19 Halaman index.php
Berikutnya mari kita buat file download.php. Script untuk download file ini tidak jauh berbeda dengan script download pada bahasan sebelumnya. Berikut adalah struktur dari script tersebut.
<? // Script program untuk download // download.php $file="./data/".$id; $tipe=explode(".",$id); $j="$tipe[1]"; Header("Content-Type:application/$j"); Header("Content-Length:".filesize($file)); Header("Content-Disposition: Attachment; filename=$id"); readfile($file); ?>
Sekarang kita buat script untuk menghapus file. Perhatikan script di bawah ini:
<?php unlink("./data/".$id); header("location:./index.php"); ?>
148
Untuk menghapus file, cukup menggunakan fungsi unlink, kemu-dian user akan dialihkan ke halaman index.php, menggunakan script header("location:./index.php");
Untuk mencoba program ini, coba buka file index.php mengguna-kan browser. Selanjutnya pilih file yang akan Anda kirim dan tekan tombol Kirim.
Apabila Anda ingin mengambil file yang sudah ada pada server, Anda cukup klik nama file yang dimaksud dan akan terbuka kotak dialog download. Pilih tombol Save atau simpan, untuk menyimpan file tersebut.