Trim Kata Satu Huruf Satu Spasi (S P A S I) Dengan PHP

Trim Kata Satu Huruf Satu Spasi (S P A S I) Dengan PHP

Saat membuat web auto saya menemui kendala seperti ini, dimana kata yang diperoleh dari engine yang saya buat mengandung satu hurup satu spasi. Setelah bertanya-tanya dengan teman di facebook saya berhasil menemukan jawabannya.

Cara Trim Kata Satu Huruf Satu Spasi (S P A S I) Dengan PHP


Menggunakan trim tentu sangat berguna didalam menghapus spasi sebuah string. Namun trim sendiri akan menghapus spasi tanpa mengetahui jumlah character yang ada. Untuk itu mari kita simak script dari om Hendro Cahyono, menggunakan beberapa function php

<?php
$str = explode(' ', $str);

$baru = '';
foreach($str as $chrs) {
    if(strlen($chrs) > 1) {
        $baru .= ' '.$chrs.' ';
    }
    else {
        $baru .= $chrs;
    }
}

$baru = trim($baru);
$baru = str_replace('  ', ' ', $baru);

Note:
$baru = str_replace('  ', ' ', $baru); // Double Space

Script diatas akan menghapus spasi didalam kalimat yang mengandung satu hurup satu spasi.
Contoh:

belajar p h p bersama sedot c o d e

Maka akan di ubah menjadi:

belajar php bersama sedot code

Membuat Function Sendiri
<?php
function HapusSatuSpasiSatuKata($str){
$str = explode(' ', $str);

$baru = '';
foreach($str as $chrs) {
    if(strlen($chrs) > 1) {
        $baru .= ' '.$chrs.' ';
    }
    else {
        $baru .= $chrs;
    }
}

$baru = trim($baru);
$baru = str_replace('  ', ' ', $baru);
return $baru;
}

$str = 'belajar p h p bersama sedot c o d e';
echo HapusSatuSpasiSatuKata($str);
Read more
Pengertian tanda tanya dan titik dua pada php (?:)

Pengertian tanda tanya dan titik dua pada php (?:)

Pengertian tanda tanya dan titik dua pada php (?:), tanda tanya dan titik dua (?:) dikenal dengan istilah operator tertiary, karena operator ini melibatkan tiga buah operand.

Operator ini dapat juga digunakan untuk melakukan pengambilan keputusan, tetapi dalam bentuk ekspresi. Bentuk penggunaannya seperti ini.

ekspresi ? nilai_1 : nilai_2

Ekspresi di atas akan memberikan hasil sesuai dengan nilai_1 jika ekspresi di depan tanda ? bernilai benar. Jika ekpresi bernilai salah maka hasilnya adalah nilai_2.

Agar lebih jelas silahkan perhatikan contoh berikut ini, contoh ini memperlihatkan pemakaian operator ?, yang digunakan untuk memperoleh nilai terkecil di antara duah buah nilai. 

<?php  
$a = 5;
$b = 100;

/*
* ekspresi ? nilai_1 : nilai_2
* Contoh 1
*/

$tertiary = $a < $b ? $a : $b;
echo $tertiary; //5
?>

Pada contoh 1 skrip di atas, ekpresi $a < $b ? $a : $b disimpan dalam sebuah variabel $tertiary, skrip diatas akan menghasilkan nilai yang merupakan isi dari variabel $a jika sekiranya $a < $b (isi $a lebih kecil dari isi $b) bernilai benar.

Sebaliknya, hasil ekspresi di atas berupa isi variabel $b jika isi $a lebih besar atau sama dengan isi $b.

Read more
Memahami Printf print dan echo dalam php

Memahami Printf print dan echo dalam php

Memahami printf print dan echo dalam php, ketiganya adalah berguna untuk menghasilkan keluaran pada browser.

a. Mendalami printf

Fungsi printf() mempunyai bentuk pemanggilan sebagai berikut:
printf(format_string, argumen ....);

Format string menentukan format argumen dalam tampilan browser. Misalnya "%s" merupakan format untuk menampilkan string, %d merupakan format untuk menampilkan bilangan bulat.

Contohnya:
$data = "100 rupiah";
printf("%d", $data);

Pernyataan print() di atas akan menampilkan 100 sebab %d akan membuat data ditampilkan dalam bentuk bilangan bulat.

Untuk lebih jelas lihat tabel dibawah ini memperlihatkan semua kemungkinan penentuan tipe yang dapat diletakkan setelah tanda %.

Kode Keterangan
d Bilangan bulat
b Bilangan biner bulat
o Blilangan oktal (berbasis 8)
x Bilangan heksadesimal (berbasis 16). Huruf dinyatakan dalam bentuk huruf kecil
X Bilangan heksadesimal (berbasis 16). Huruf dinyatakan dalam bentuk huruf besar/kapital
c Karakter yang nilai ASCII-nya dinyatakan dalam argumen
s String
f Bilangan doubel(real)
% Tanda %. Tidak perlu ada argumen


Contoh lengkap printf bisa dilihat dri bawah ini
<?php 
$data = "30.5 derajat celcius";

printf("Format d : %d <br>", $data);
printf("Format b : %b <br>", $data);
printf("Format o : %o <br>", $data);
printf("Format x : %x <br>", $data);
printf("Format X : %X <br>", $data);
printf("Format c : %c <br>", $data);
printf("Format s : %s <br>", $data);
printf("Format f : %f <br>", $data);

catatan:
String format bisa melibatkan lebih dari satu penentu tipe contoh:
Printf("%s = %d", "TV Samsung", 1000000);


b. Penggunaan print

Selama ini mungkin kita terbiasa dengan menggunakan print() dengan bentuk 
print(string);
sebenarnya anda juga bisa menggunakan print() tanpa tanda kurug. Seperti
print "Hai";
sama saja dengan 
print("Hai");

c. Fungsi echo

Fungsi echo() adalah alternatif lain dari print(). Bentuk penggunaannya:
echo string;
atau 
echo (string);

Sekian pembahasan mengenai pemahaman Printf print dan echo dalam php, semoga bisa dipahami dengan baik dan benar. Jika ada kesalahan mohon koreksi teman-teman yang lainnya.

Read more
FIX [easyengine] Couldn’t extract WordPress archive error

FIX [easyengine] Couldn’t extract WordPress archive error

Downloading WordPress [Fail], Oops Something went wrong !! Calling cleanup actions ... 'ee_mysql_grant_host'

Since last few days, EasyEngine users are facing an issue creating a WordPress site on Ubuntu systems. The error thrown by WP-CLI (which EE uses internally to download WordPress Core) looks something like:
Error: Couldn't extract WordPress archive. unable to decompress gzipped phar archive "/tmp/wp_59cb76c85c61c.tar.gz" to temporary file

Workaround

As the issue itself is not related to EasyEngine, we haven’t released an update from EasyEngine.
But there are multiple workarounds to fix this on your end.
The nightly build of WP-CLI is working correctly. You can update WP-CLI using:
sudo wp --allow-root cli update --nightly
Now you should be able to download WordPress successfully using Easy Engine.

#2. Force WP-CLI to download WordPress 4.8.1

Please run following commands in once to create a config.yml file that will override the WP-CLI defaults.
cat < ~/.wp-cli/config.yml
core download:
  version: 4.8.1
EOF
Now, you can create a WordPress site using EasyEngine commands.
It is recommended you update WordPress sites to the latest version. You can do it manually via the admin dashboard, or, you can use WP-CLI to update the site using:
sudo wp core update --allow-root

Reasons

One of the causes of the error was assumed to be due to faulty gzip compression of WordPress’ en_USlocale, which later came out to be false.
Another one was that something went possibly wrong with WP-CLI’s Extractor class which uses PharData() to extract the zip and, as observed by Daniel Bachhuber, the error was indeed indirectly caused by PharData which had its dependency on a Debian PHP patch.

Read more

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

System informasi akademik - SIM Akademik Ver 0.1 | Politeknik TEDC Bandung, ini adalah sebuah script atau source code php yang di buat oleh saudara nuris akbar yang di share dalam blognya yaitu belajarphp.net. Script ini menggunakan framework php yaitu framework codeigniter versi 2.1.3.

Sudah banyak sekali source code yang berkaitan dengan akademik yang dibagikan dalam blog sedot code ini, baik yang prosedural (belum OOP(Object Oriented Programming)/MVC) ataupun yang sudah OOP/MVC(Model View Controller), untuk kamu yang sedang mencari source code php maka halaman ini sangat cocok untuk kamu, baik untuk yang ingin sekedar mengoprek saja, atau yang sedang mengerjakan tugas akhir skripsi.

Inti dari source code program ini adalah sebuah proses Create Read Update dan Delete data dari database, atau yang sering disebut juga dengan istilah CRUD. Semua proses CRUD ini tentunya dilakukan didalam mengolah database mysql. Sedot code sendiri sudah mengupas proses crud dengan sangat rinci pada video youtube: CRUD Codeigniter

Database mysql dari source code ini mempunyai 22 tabel. Tabel-tabel tersebut adalah tabel absen, admin, agama, dosen, gedung, hari, hiregistrasi, jadwal, jam_kuliah, jurusan, kelompokmakul, khs, krs, mahasiswa, makul, nilai, paket_detail, paket_makul, pendidikan, ruangan, semester, dan tabel tahun_akademik.

Olivier PLATHEY merupakan author dari FPDF. FPDF adalah snippet atau sebuah class php yang berguna untuk mencetak data kedalam format pdf. SIM Akademik Ver 0.1 ini menggunakan library FPDF versi 1.7.


SPESIFIKASI DAN KEBUTUHAN SISTEM

Spesifikasi yang dibutuhkan untuk menjalankan aplikasi ini adalah
sebagai berikut :

Software


  1. Sistem operasi ( Windows ,Linux,Mac)
  2. Xampp 1.7.7 ( php 5.3 atau diatasnya )
  3. Web browser ( Mozilla,chrome dengan versi terbaru)
  4. Adobe reader

Hardware

Berikut ini adalah spesifikasi hardware minimum

  1. Harrdisk 80 Gb
  2. Ram 1GB
  3. Processor Intel Pentium 3


Fitur SIM Akademik

Berikut adalah fitur / menu-menu yang ada didalam dashboard admin SIM Akademik.

Input data master, sebelum mengoperasikan system ini sebaiknya anda siapkan terlebih
dahulu data master yang diperlukan seperti data dosen ,gedung dan
matakuliah.

Data Master


  • Database Dosen
  • Database Jurusan
  • Gedung dan Ruangan
  • Tahun Akademik
  • Penjadwalan Kuliah


Data Mahasiswa


  • Database Mahasiswa
  • Kartu Rencana Studi
  • Kartu Hasil Studi
  • Haregistrasi


Mata Kuliah


  • Paket Mata Kuliah
  • Database Mata Kuliah


Data Dikti


  • Mahasiswa DBF
  • Dosen DBF


Daripada penjelasan diatas membuat penasaran, maka kita bisa melihat tampilannya dibawah ini. Menggunakan framework css bootstrap yang sangat cantik dan menyejukkan mata sang programmer, Bootstrap versi 2.3.1. Kita tidak membahas bootstrap, tapi kamu bisa melihat dokumen lengkap bootstrap pada halaman webnya. Untuk Source codenya bisa did0wnload disini.


Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter
Struktur Database

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter

Source Code System Informasi Akademik (SIM Akademik) Dengan Codeigniter


Cara Install SIM Akademik

Untuk instalasi sebenarnya tidak ada yang aneh-aneh, tapi untuk yang masih pemula di codeigniter ini bisa menjadi kendala. Sekarang ikuti langkah dibawah ini, saya menggunakan xampp , yang lokasi folder rootnya C:\xampp\htdocs.

1. Ekstrak file zip kedalam folder root
2. Import Database (2 Cara Import mysql)
3. Setting base_url (aplication/config/config.php)
4. Setting database (aplication/config/database.php)
5. Selesai

Tips:
Untuk yang membuat php di local, sebaiknya membuat virtual host tersendiri. Baca Cara Membuat Virtual Host

Setelah admin sedot code teliti dan buka semua fitur-fiturnya, ternyata ada sebuah kekurangan controller, yaitu controller 'makul', untuk fitur paginasi didalam menu database mata kuliah tidak berfungsi. Namanya juga free source, tentu teman temanlah yang harus menyempurnakan kembali.

Demikian Source code yang di review dan share oleh sedot code pada kesempatan ini, semoga bisa berkenaan di hati pembaca dan pembuat source.
Read more

Source Website Company Profile Menggunakan Codeigniter

Script yang bertujuan untuk membuat website company profile menggunakan php, dengan menggunakan framework codeigniter versi 3. Web profile ini sangat simple dalam tampilannya, namun akan sedikit rumit bagi yang biasa dengan script non framework (konsep mvc).

Pada beberapa artikel sebelumnya, sudah ada dua contoh web profil yang sedot code bagikan dalam blog ini. Silahkan baca juga:

  1. Web Profil Sekolah dan PPDB Online PHP, MySQL, AJAX jQuery & Bootstrap
  2. Download GRATIS Contoh Website Profil Sekolah Dengan PHP
Kembali ke pembahasan sebelumnya, Source code website company profile menggunakan codeigniter. Untuk menjalankan script ini minimal sudah biasa dengan framework codeigniter.

# Demo

Source Website Company Profile Menggunakan Codeigniter
Home

Source Website Company Profile Menggunakan Codeigniter
Login 

Source Website Company Profile Menggunakan Codeigniter
Dashboard

# Instalasi 


Untuk instalasi cukup mudah, yang perlu anda sesuaikan adalah base url dan nama database pada folder config. Untuk lebih jelas, lihat gambar berikut:
Source Website Company Profile Menggunakan Codeigniter
Configurasi Database

Source Website Company Profile Menggunakan Codeigniter
Base_url

Sebaiknya teman-teman biasakan membuat virtual host jika ingin dev di localhost, Baca cara membuat virtual host.

Silahkan sesuaikan nama database yang anda buat, kemudian silahkan import database. Baca Cara import database

Selesai.

Dengan mengikuti beberapa langkah diatas, diharapkan teman teman tidak mengalami kendala yang berarti. Jika ada masalah bisa di curahkan dibawah ini. Source kami: sedotkode.com

Teman teman bisa menyedot codenya disini

Read more

Cara Membuat Angka dan Abjad Menjadi Acak [Random] PHP

Cara Membuat Angka dan Abjad Menjadi Acak, untuk membuat nomor secara random kita bisa menggunakan sebuah function dari php. Namun ada saatnya kita butuh sebuah function yang lebih komplit seperti yang akkan kita bahas berikut.
Cara Membuat Angka dan Abjad Menjadi Acak
Random

Php Random Function 

Ada beberapa metode membuat random sebuah string. berikut yang bisa kita coba:

rand().


Membuat Nomor Acak dengan rand().
$n = rand(); // 30
$n = rand(); // 70

echo rand(10, 30);
 //generates and prints a random number between 10 and 30 (10 and 30 are included)

Penggunaan rand() tidak dianjurkan untuk keperluan dalam kriptografi (encrypt-decrypt). The random numbers generated by this function are not cryptographically secure values, and they should not be used for cryptographic reasons. If you need secure values, use other random functions such as random_int(), openssl_random_pseudo_bytes() or random_bytes(). thoughtco.com

Sekarang kita akan membuat function baru dari function rand(). Dengan skrip ini kita bis membuat kode acak / random baik dari angka atau abjad.

Random Angka:
 <?php   
function acak($panjang)   
{   
  $karakter = '1234567890';   
  $string = '';   
  for($i = 0; $i < $panjang; $i++) {   
     $pos = rand(0, strlen($karakter)-1);   
     $string .= $karakter{$pos};   
  }   
return $string;   
}   

echo acak(10);  


Random Abjad+Angka
 <?php   
function random($panjang)   
{   
  $karakter = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';     
  $string = '';   
  for($i = 0; $i < $panjang; $i++) {   
     $pos = rand(0, strlen($karakter)-1);   
     $string .= $karakter{$pos};   
  }   
return $string;   
}   

echo random(10); //jFodd9UWwG  
 ?>  

Silahkan simpan dan refresh browser teman agar bisa melihat perubahannya. Silahkan atur berapa jumlah angka yang ingin dirandom. Terima kasih, semoga bermanfaat untuk teman sekalian,

Read more

Encrypt Decrypt Dengan PHP, Teknik Kamuflase [SECRET]

PHP Encrypt Decrypt, Apa itu enkripsi? enkripsi adalah sebuah teknik yang bertujuan untuk  mengamankan sebuah informasi. Informasi ini biasanya disembunyikan untuk kepentingan tertentu misalnya informasi password didalam database. Informasi ini akan di ubah menjadi deretan angka / huruf yang sulit di baca dengan ilmu kanuragan apapun.
Encrypt Decrypt Dengan PHP
Iconfinder

Dekripsi merupakan proses pengembalian informasi dari hasil enkripsi. Dengan dekripsi kita bisa membaca dan memahami kembali isi dari informasi yang kita kirimkan.

Berikut ini adalah beberapa fungsi metode enkripsi yang sering kita dengar dalam pemrograman php.

1. Encode dan Decode

Salah satu metode encode dan decode yang sering dipakai adalah base64_encode() dan base64_decode(). Dari namanya saja kita sudah tahu apa kegunaannya, ada yang untuk encode dan ada yang untuk decode. Lihat contoh berikut:
<?php  
    $plaintext = 'sedotcode.com';  
    //Encode plaintext  
    $encode = base64_encode($plaintext);  
    //Decode plaintext  
    $decode = base64_decode($encode);  
    echo $plaintext."<br/>";   
    echo "Teks yang diencode = ".$encode."<br/>";  
    echo "Teks yang didecode = ".$decode;  

//Hasil 
//     sedotcode.com
//     Teks yang diencode = c2Vkb3Rjb2RlLmNvbQ==
//     Teks yang didecode = sedotcode.com 


2. Hashing

Apa itu hashing? hashing adalah salah satu metode yang bisa mengubah karakter apapun menjadi karakter acak.

Ada banyak jenis hash yang sering digunakan, diantaranya adalah MD5, SHA1, SHA256 dan CRC32. Hash ini sendiri bersifat satu arah, artinya hash ini hanya enkripsi daja. Saya biasa menggunakan hash untuk menyimpan password didalam database. Namun metode ini menurut pakar  php sudah tidak rekomended.

Contoh Penggunaannya:
<?php  
      $plaintext = 'sedotcode.com';  
      //md5 hash  
      $md5 = md5($plaintext);  
      //sha1 hash  
      $sha1 = sha1($plaintext);  
      //crc32 hash  
      $crc32 = crc32($plaintext);  
      echo "teks = ".$plaintext."<br/>";   
      echo "MD5 Hash = ".$md5."<br/>";  
      echo "SHA1 Hash = ".$sha1."<br/>";  
      echo "CRC32 Hash = ".$crc32."<br/>";  

      // HAsil
// teks = sedotcode.com
// MD5 Hash = f01da6943eb9266a3dc6d734906a1afa
// SHA1 Hash = 092e2e989f59338ab6cb03285493d4f58c4f8537
// CRC32 Hash = -282948462
 ?>  


Encrypt dan Decrypt

Fungsi yang biasa digunakan di PHP itu adalah fungsi mcrypt cipher. Beda dengan metode Hash, gunain fungsi mcrypt ini bisa mengenkripsi dan juga mengembalikan lagi teks yang sudah dienkripsi lho! Selain itu, fungsi mcrypt ini memiliki beberapa metode algoritma cipher yang digunakan. Ada mcrypt_3des, mcrypt_blowfish, mcrypt_rijndael_128 dan lain-lain.

Bagaimana kalau membuat metode decrypt encrypt gabungan dari metode encode decode diatas? tentu sangat bisa dilakukan.

Berikut adalah beberapa script snipet yang bisa kita gunakan untuk keperluan enkripsi dan dekripsi dengan php.

OpenSSL

<?php
function encrypt_decrypt($action, $string) {
    $output = false;
    $encrypt_method = "AES-256-CBC";
    $secret_key = 'key_one';
    $secret_iv = 'key_two';
    // hash
    $key = hash('sha256', $secret_key);
    // iv - encrypt method AES-256-CBC expects 16 bytes - else you will get a warning
    $iv = substr(hash('sha256', $secret_iv), 0, 16);
    if ( $action == 'encrypt' ) {
        $output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
        $output = base64_encode($output);
    } else if( $action == 'decrypt' ) {
        $output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
    }
    return $output;
}
// Contoh Penggunaan
$plain_txt = "Sedot Code";
$encrypted_txt = encrypt_decrypt('encrypt', $plain_txt);
$decrypted_txt = encrypt_decrypt('decrypt', $encrypted_txt);


mcrypt

<?php
function safe_b64encode($string) {
    $data = base64_encode($string);
    $data = str_replace(array('+','/','='),array('-','_',''),$data);
    return $data;
}

function safe_b64decode($string) {
    $data = str_replace(array('-','_'),array('+','/'),$string);
    $mod4 = strlen($data) % 4;
    if ($mod4) {
        $data .= substr('====', $mod4);
    }
    return base64_decode($data);
}

function encrypt_decrypt($action,$value)
{
    $_key = '1234567890987654';
    if(!$value){return false;}

    if ($action == 'encrypt') 
    {
        $text = $value;
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
        $crypttext     = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $_key, $text, MCRYPT_MODE_ECB, $iv);
        $output     = trim(safe_b64encode($crypttext));
    }
    elseif ($action == 'decrypt') 
    {
        $crypttext = safe_b64decode($value);
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
        $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $_key, $crypttext, MCRYPT_MODE_ECB, $iv);
        $output     = trim($decrypttext);
    }

    return $output;
}

// Contoh 
$str = "Sedot Code";
$encrypt = encrypt_decrypt('encrypt',$str);
$decrypt = encrypt_decrypt('decrypt',$encrypt);

Sekian bahasan mengenai teknik kamuflase ini, semoga bermanfaat untuk teman-teman sekalian. Spesial thank to : joashp & niczak
Read more
Script PHP Untuk Redirect  Visitor Berdasarkan Negara

Script PHP Untuk Redirect Visitor Berdasarkan Negara

Skrip PHP Untuk Mengetahui Negara Pengunjung berdasarkan IP address sudah pernah dibahas pada artikel sebelumnya disini. Sekarang sedot code ingin membagikan bagaimana cara redirect pengunjung berdasarkan negara menggunakan curl freegeoip.net.

Tutorial ini sebenarnya bisa juga untuk memblok visitor dari negara-negara tertentu. Jika anda adalah seorang internet marketer mungkin akan sering membutuhkan script bagaimana cara meredirect atau memblok visitor ini.


Mendapatkan IP, Validasi IP, dan GeoIP

Berikut adalah scriptnya:

<?php
function getGeoIP($ip = null, $jsonArray = false) {
    try {
        // If no IP is provided use the current users IP
        if($ip == null) {
            $ip   = filter_input(INPUT_SERVER, 'REMOTE_ADDR');
        }
        // If the IP is equal to 127.0.0.1 (IPv4) or ::1 (IPv6) then cancel, won't work on localhost
        if($ip == "127.0.0.1" || $ip == "::1") {
            throw new Exception('You are on a local sever, this script won\'t work right.');
        }
        // Make sure IP provided is valid
        if(!filter_var($ip, FILTER_VALIDATE_IP)) {
            throw new Exception('Invalid IP address "' . $ip . '".');
        }
        if(!is_bool($jsonArray)) {
            throw new Exception('The second parameter must be a boolean - true (return array) or false (return JSON object); default is false.');
        }
        // Fetch JSON data with the IP provided
        $url  = "http://freegeoip.net/json/" . $ip;
        // Return the contents, supress errors because we will check in a bit
        $json = @file_get_contents($url);
        // Did we manage to get data?
        if($json === false) {
            return false;
        }
        // Decode JSON
        $json = json_decode($json, $jsonArray);
        // If an error happens we can assume the JSON is bad or invalid IP
        if($json === null) {
            // Return false
            return false;
        } else {
            // Otherwise return JSON data
            return $json;
        }
    } catch(Exception $e) {
        return $e->getMessage();
    }
}
function get_ip_address() {
    $ip_keys = array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR');
    foreach ($ip_keys as $key) {
        if (array_key_exists($key, $_SERVER) === true) {
            foreach (explode(',', $_SERVER[$key]) as $ip) {
                // trim for safety measures
                $ip = trim($ip);
                // attempt to validate IP
                if (validate_ip($ip)) {
                    return $ip;
                }
            }
        }
    }

    return isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : false;
}
function validate_ip($ip)
{
    if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) === false) {
        return false;
    }
    return true;
}

Terlihat ada beberapa fungsi, setidaknya ada 3 fungsi(). mendapatkan ip address, validasi ip, dan menentukan lokasi negaranya. Sekarang tinggal kita eksekusi seperti ini.

//https://sedotcode.blogspot.com/2017/09/redirect-visitor-by-country.html
$ip = get_ip_address();
$userGeoData = getGeoIP($ip); 

echo "IP: " .$ip."<br>";

echo "Kode Negara: " .$userGeoData->country_code."<br>";

echo "Nama Negara: " .$userGeoData->country_name."<br>";

echo "Kota: " .$userGeoData->city."<br>";

PHP Redirect By Country 


// Tutorial => https://sedotcode.blogspot.com/2017/09/redirect-visitor-by-country.html
// Code Negara (2 Digit) indonesia = ID => https://countrycode.org/
$userGeoData = getGeoIP(get_ip_address()); 

// echo "Kode Negara: " .$userGeoData->country_code."<br>";

// echo "Nama Negara: " .$userGeoData->country_name."<br>";

$kode_negara = $userGeoData->country_code;

if ($kode_negara == 'ID' || $kode_negara == "dan seterusnya" ) {
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: //fb.com"); 
}

Penjelasan:
Setelah mendapatkan nama negara berdasarkan ip, maka kita bisa redirect ke halaman tertentu. Seperti pada contoh diatas. Jika pengunjung berasal dari Indonesia maka akan di arahkan ke facebook.com.

$kode_negara  = SO 3166 Country Codes
A1,"Anonymous Proxy"
A2,"Satellite Provider"
O1,"Other Country"
AD,"Andorra"
AE,"United Arab Emirates"
AF,"Afghanistan"
AG,"Antigua and Barbuda"
AI,"Anguilla"
AL,"Albania"
AM,"Armenia"
AO,"Angola"
AP,"Asia/Pacific Region"
AQ,"Antarctica"
AR,"Argentina"
AS,"American Samoa"
AT,"Austria"
AU,"Australia"
AW,"Aruba"
AX,"Aland Islands"
AZ,"Azerbaijan"
BA,"Bosnia and Herzegovina"
BB,"Barbados"
BD,"Bangladesh"
BE,"Belgium"
BF,"Burkina Faso"
BG,"Bulgaria"
BH,"Bahrain"
BI,"Burundi"
BJ,"Benin"
BL,"Saint Bartelemey"
BM,"Bermuda"
BN,"Brunei Darussalam"
BO,"Bolivia"
BQ,"Bonaire, Saint Eustatius and Saba"
BR,"Brazil"
BS,"Bahamas"
BT,"Bhutan"
BV,"Bouvet Island"
BW,"Botswana"
BY,"Belarus"
BZ,"Belize"
CA,"Canada"
CC,"Cocos (Keeling) Islands"
CD,"Congo, The Democratic Republic of the"
CF,"Central African Republic"
CG,"Congo"
CH,"Switzerland"
CI,"Cote d'Ivoire"
CK,"Cook Islands"
CL,"Chile"
CM,"Cameroon"
CN,"China"
CO,"Colombia"
CR,"Costa Rica"
CU,"Cuba"
CV,"Cape Verde"
CW,"Curacao"
CX,"Christmas Island"
CY,"Cyprus"
CZ,"Czech Republic"
DE,"Germany"
DJ,"Djibouti"
DK,"Denmark"
DM,"Dominica"
DO,"Dominican Republic"
DZ,"Algeria"
EC,"Ecuador"
EE,"Estonia"
EG,"Egypt"
EH,"Western Sahara"
ER,"Eritrea"
ES,"Spain"
ET,"Ethiopia"
EU,"Europe"
FI,"Finland"
FJ,"Fiji"
FK,"Falkland Islands (Malvinas)"
FM,"Micronesia, Federated States of"
FO,"Faroe Islands"
FR,"France"
GA,"Gabon"
GB,"United Kingdom"
GD,"Grenada"
GE,"Georgia"
GF,"French Guiana"
GG,"Guernsey"
GH,"Ghana"
GI,"Gibraltar"
GL,"Greenland"
GM,"Gambia"
GN,"Guinea"
GP,"Guadeloupe"
GQ,"Equatorial Guinea"
GR,"Greece"
GS,"South Georgia and the South Sandwich Islands"
GT,"Guatemala"
GU,"Guam"
GW,"Guinea-Bissau"
GY,"Guyana"
HK,"Hong Kong"
HM,"Heard Island and McDonald Islands"
HN,"Honduras"
HR,"Croatia"
HT,"Haiti"
HU,"Hungary"
ID,"Indonesia"
IE,"Ireland"
IL,"Israel"
IM,"Isle of Man"
IN,"India"
IO,"British Indian Ocean Territory"
IQ,"Iraq"
IR,"Iran, Islamic Republic of"
IS,"Iceland"
IT,"Italy"
JE,"Jersey"
JM,"Jamaica"
JO,"Jordan"
JP,"Japan"
KE,"Kenya"
KG,"Kyrgyzstan"
KH,"Cambodia"
KI,"Kiribati"
KM,"Comoros"
KN,"Saint Kitts and Nevis"
KP,"Korea, Democratic People's Republic of"
KR,"Korea, Republic of"
KW,"Kuwait"
KY,"Cayman Islands"
KZ,"Kazakhstan"
LA,"Lao People's Democratic Republic"
LB,"Lebanon"
LC,"Saint Lucia"
LI,"Liechtenstein"
LK,"Sri Lanka"
LR,"Liberia"
LS,"Lesotho"
LT,"Lithuania"
LU,"Luxembourg"
LV,"Latvia"
LY,"Libyan Arab Jamahiriya"
MA,"Morocco"
MC,"Monaco"
MD,"Moldova, Republic of"
ME,"Montenegro"
MF,"Saint Martin"
MG,"Madagascar"
MH,"Marshall Islands"
MK,"Macedonia"
ML,"Mali"
MM,"Myanmar"
MN,"Mongolia"
MO,"Macao"
MP,"Northern Mariana Islands"
MQ,"Martinique"
MR,"Mauritania"
MS,"Montserrat"
MT,"Malta"
MU,"Mauritius"
MV,"Maldives"
MW,"Malawi"
MX,"Mexico"
MY,"Malaysia"
MZ,"Mozambique"
NA,"Namibia"
NC,"New Caledonia"
NE,"Niger"
NF,"Norfolk Island"
NG,"Nigeria"
NI,"Nicaragua"
NL,"Netherlands"
NO,"Norway"
NP,"Nepal"
NR,"Nauru"
NU,"Niue"
NZ,"New Zealand"
OM,"Oman"
PA,"Panama"
PE,"Peru"
PF,"French Polynesia"
PG,"Papua New Guinea"
PH,"Philippines"
PK,"Pakistan"
PL,"Poland"
PM,"Saint Pierre and Miquelon"
PN,"Pitcairn"
PR,"Puerto Rico"
PS,"Palestinian Territory"
PT,"Portugal"
PW,"Palau"
PY,"Paraguay"
QA,"Qatar"
RE,"Reunion"
RO,"Romania"
RS,"Serbia"
RU,"Russian Federation"
RW,"Rwanda"
SA,"Saudi Arabia"
SB,"Solomon Islands"
SC,"Seychelles"
SD,"Sudan"
SE,"Sweden"
SG,"Singapore"
SH,"Saint Helena"
SI,"Slovenia"
SJ,"Svalbard and Jan Mayen"
SK,"Slovakia"
SL,"Sierra Leone"
SM,"San Marino"
SN,"Senegal"
SO,"Somalia"
SR,"Suriname"
SS,"South Sudan"
ST,"Sao Tome and Principe"
SV,"El Salvador"
SX,"Sint Maarten"
SY,"Syrian Arab Republic"
SZ,"Swaziland"
TC,"Turks and Caicos Islands"
TD,"Chad"
TF,"French Southern Territories"
TG,"Togo"
TH,"Thailand"
TJ,"Tajikistan"
TK,"Tokelau"
TL,"Timor-Leste"
TM,"Turkmenistan"
TN,"Tunisia"
TO,"Tonga"
TR,"Turkey"
TT,"Trinidad and Tobago"
TV,"Tuvalu"
TW,"Taiwan"
TZ,"Tanzania, United Republic of"
UA,"Ukraine"
UG,"Uganda"
UM,"United States Minor Outlying Islands"
US,"United States"
UY,"Uruguay"
UZ,"Uzbekistan"
VA,"Holy See (Vatican City State)"
VC,"Saint Vincent and the Grenadines"
VE,"Venezuela"
VG,"Virgin Islands, British"
VI,"Virgin Islands, U.S."
VN,"Vietnam"
VU,"Vanuatu"
WF,"Wallis and Futuna"
WS,"Samoa"
YE,"Yemen"
YT,"Mayotte"
ZA,"South Africa"
ZM,"Zambia"
ZW,"Zimbabwe"

Demikian Script PHP Untuk Redirect  Visitor Berdasarkan Negara. Semoga bermanfaat.
Read more
Install FFmpeg Ubuntu 12.04 - 14.04 dan 16.04

Install FFmpeg Ubuntu 12.04 - 14.04 dan 16.04

Cara Install FFmpeg Ubuntu 12.04 - 14.04 and 16.04, bagaimana cara menginstall aplikasi ffmpeg pada linux ubuntu versi 12.04 - 14.04 dan 16.04.

Install FFmpeg Ubuntu 12.04 and 16.04

Untuk ffmpeg versi 12 dan 16 caranya sama.
sudo apt-get install ffmpeg


Install FFmpeg Ubuntu 14.04

Untuk menginstall FFmpeg Ubuntu 14.04, kita harus Add FFmpeg Repo terlebih dahulu

Add FFmpeg Repo

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next

Update Sources

sudo apt-get update

Install FFmpeg

sudo apt-get install ffmpeg

Demikian bagaimana cara install FFmpeg untuk linux / ubuntu versi 12.04 - 14.04 dan 16.04
Read more