Cara menggunakan file_exists return false php

CBR-News.com - Jika saat ini anda mengunakan Codeigniter 3 dalam project yang sedang dikerjakan dan mengalami masalah tidak bisa upload gambar yang berekstensi WEBP  dalam artikel ini saya akan memberikan solusinya.

Berawal dari pengalaman yang pernah saya alami saat sedang membangun website CBR-News,com ini dimana web ini dibangun menggunakan fermwork codeigniter 3  memliki kendala pada optimasi kecepatannya. Saya cek via google pagespeed dan terdapat keterangan bahwa saya disarankan untuk mengganti format image yang ada di website ke ekstensi webp karena dapat mengkompresi ukuranya lebih kecil dengan kualitas gambar yang terjaga jika dibandingkan dengan format lainnya seperti png, jpeg dan lain - lain.

Oke tidak perlu berpanjang lebar kita langsung saja ke inti pembahasanya. 

Baca Juga:

Agar bisa upload file gambar berekstensi webp di codeigniter 3 ikuti langkah dibawah ini :

1. Tambahkan webp MIME Type ke mimes.php

Pergi ke application/config/mimes.php dan tambahkan script dibawah ini : 

Baca Juga:

'webp'   =>  array('image/webp'), 

2. Pada File upload Controller tambahkan script dibawah :

$config['allowed_types'] = 'gif|jpg|jpeg|png|webp';

Sekarang kamu bisa upload file gambar webp di codeigniter 3, tapi tidak bisa resize dan pangkas gambar. Berikut saya lanjutkan agar anda bisa melakukannya :

Ubah Image Manipulation Class yang terletak di C:\xampp\htdocs\project-anda\system\libraries\Image_lib.php

backup dulu file image_lib.php untuk berjaga - jaga kalau terjadi masalah.

Buka file image_lib.php yang sudah di backup tadi dengan noteped++, lalu hapus semua script code yang ada dan ganti dengan script dibawah ini :

Pada artikel kali ini kita akan mencoba membuat script PHP untuk backup database Mysql ke dalam format Gzip. GZIP adalah format file yang terbentuk karena proses kompresi dari suatu file agar ukurannya lebih kecil. Sebelumnya admin sudah mempunyai source function untuk backup database yang admin dapat dari salah satu sumber. Fungsi ini bisa digunakan untuk backup database menggunakan PHP atayupun framework Codeigniter.

Langsung saja coba kita aplikasikan source codenya.

Untuk source code backup database php kurang lebih seperti berikut, kita bisa namakan dengan nama backup.php.

connect_error ) {
      print_r( $mysqli->connect_error );
      return false;
    }

    $dir = $directory;
    $result = '

Could not create backup directory on :'.$dir.' Please Please make sure you have set Directory on 755 or 777 for a while.

'; $res = true; if( ! is_dir( $dir ) ) { if( ! @mkdir( $dir, 755 )) { $res = false; } } $n = 1; if( $res ) { $name = $outname; # counts if( file_exists($dir.'/'.$name.'.sql.gz' ) ) { for($i=1;@count( file($dir.'/'.$name.'_'.$i.'.sql.gz') );$i++){ $name = $name; if( ! file_exists( $dir.'/'.$name.'_'.$i.'.sql.gz') ) { $name = $name.'_'.$i; break; } } } $fullname = $dir.'/'.$name.'.sql.gz'; # full structures if( ! $mysqli->error ) { $sql = "SHOW TABLES"; $show = $mysqli->query($sql); while ( $r = $show->fetch_array() ) { $tables[] = $r[0]; } if( ! empty( $tables ) ) { //cycle through $return = ''; foreach( $tables as $table ) { $result = $mysqli->query('SELECT * FROM '.$table); $num_fields = $result->field_count; $row2 = $mysqli->query('SHOW CREATE TABLE '.$table ); $row2 = $row2->fetch_row(); $return .= "\n -- --------------------------------------------------------- -- -- Table structure for table : `{$table}` -- -- --------------------------------------------------------- ".$row2[1].";\n"; for ($i = 0; $i < $num_fields; $i++) { $n = 1 ; while( $row = $result->fetch_row() ) { if( $n++ == 1 ) { # set the first statements $return .= " -- -- Dumping data for table `{$table}` -- "; /** * Get structural of fields each tables */ $array_field = array(); #reset ! important to resetting when loop while( $field = $result->fetch_field() ) # get field { $array_field[] = '`'.$field->name.'`'; } $array_f[$table] = $array_field; // $array_f = $array_f; # endwhile $array_field = implode(', ', $array_f[$table]); #implode arrays $return .= "INSERT INTO `{$table}` ({$array_field}) VALUES\n("; } else { $return .= '('; } for($j=0; $j<$num_fields; $j++) { $row[$j] = str_replace('\'','\'\'', preg_replace("/\n/","\\n", $row[$j] ) ); if ( isset( $row[$j] ) ) { $return .= is_numeric( $row[$j] ) ? $row[$j] : '\''.$row[$j].'\'' ; } else { $return.= '\'\''; } if ($j<($num_fields-1)) { $return.= ', '; } } $return.= "),\n"; } # check matching @preg_match("/\),\n/", $return, $match, false, -3); # check match if( isset( $match[0] ) ) { $return = substr_replace( $return, ";\n", -2); } } $return .= "\n"; } // "-- --------------------------------------------------------- // -- // -- SIMPLE SQL Dump // -- // -- // -- Host Connection Info: ".$mysqli->host_info." // -- Generation Time: ".date('F d, Y \a\t H:i A ( e )')." // -- Server version: ".mysql_get_server_info()." // -- PHP Version: ".PHP_VERSION." // -- // -- ---------------------------------------------------------\n\n // SET SQL_MODE = \"NO_AUTO_VALUE_ON_ZERO\"; // SET time_zone = \"+00:00\"; // /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; // /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; // /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; // /*!40101 SET NAMES utf8 */; // ".$return." // /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; // /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; // /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;"; $return = "-- --------------------------------------------------------- -- -- SIMPLE SQL Dump -- -- nawa (at) yahoo (dot) com -- -- Host Connection Info: ".$mysqli->host_info." -- Generation Time: ".date('F d, Y \a\t H:i A ( e )')." -- PHP Version: ".PHP_VERSION." -- -- ---------------------------------------------------------\n\n SET SQL_MODE = \"NO_AUTO_VALUE_ON_ZERO\"; SET time_zone = \"+00:00\"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; ".$return." /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;"; # end values result @ini_set('zlib.output_compression','Off'); $gzipoutput = gzencode( $return, 9); if( @ file_put_contents( $fullname, $gzipoutput ) ) { # 9 as compression levels $result = $name.'.sql.gz'; # show the name } else { # if could not put file , automaticly you will get the file as downloadable $result = false; // various headers, those with # are mandatory header('Content-Type: application/x-gzip'); // change it to mimetype header("Content-Description: File Transfer"); header('Content-Encoding: gzip'); # header('Content-Length: '.strlen( $gzipoutput ) ); # header('Content-Disposition: attachment; filename="'.$name.'.sql.gz'.'"'); header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); header('Connection: Keep-Alive'); header("Content-Transfer-Encoding: binary"); header('Expires: 0'); header('Pragma: no-cache'); echo $gzipoutput; } } else { $result = '

Error when executing database query to export.

'.$mysqli->error; } } } else { $result = '

Wrong mysqli input

'; } if( $mysqli && ! $mysqli->error ) { @$mysqli->close(); } return $result; }

Backup Database Menggunakan Script PHP

Untuk implementasi di php kita bisa buat sebuah file bernama index.html, karena kita akan membuat backup menggunakan Ajax jadi kita tambahkan juga Jquery melalui cdn. Perhatikan  kode berikut: