Bismillaahirrohmaanirrohiim…
Di bawah ini adalah fungsi yang berguna di PHP yang sering dipakai oleh programmer PHP.
Biasanya di database MySQL programmer suka menggunakan autoincrement untuk primary key-nya, namun masalahnya akan muncul saat syncronisasi data dari beberapa database backup, karena bisa jadi nilai primary-nya sama.
Sebagai solusinya, programmer membuat sendiri fungsi yang menandai ID primary key benar-benar unik.
function getId() { $idt = explode(" ", microtime()); $uniqid = $idt[1]. substr($idt[0], 2); return $uniqid.rand(1000,9999); } //hasil contoh: 1618802094566629001421 (22 digit)
atau
function getId() { return uniqid(rand(1000,9999),true); //tanpa titik //return str_replace('.', '', uniqid(rand(100,999),true)); } //hasil contoh: 7408607ce1535575e0.35457382 (27 digit)
fungsi di atas bisa jadi masih berpotensi menghasilkan kode yang sama, silahkan ubah random angkanya sesuai kebutuhan.
Saat menjalankan program PHP, biasanya teks baru akan ditampilkan setelah kode pada file tersebut selesai dieksekusi.
Nah, untuk menampilkan text tanpa menunggu kode selesai diekseskusi fungsinya adalah sebagai berikut:
function print_cmd($txt) { echo $txt; @ob_end_flush(); @ob_flush(); flush(); ob_start(); }
function wait_user_input() { $handle = fopen ("php://stdin","r"); $line = fgets($handle); fclose($handle); return trim($line); }
Jika kita punya website dengan IP address private, semua domain dapat diarahkan ke IP website kita.
Sehingga jika ada orang iseng membuat nama domain lain kemudian diarahkan ke IP website kita, jadinya web kita mempunyai banyak alamat website.
Contoh, IP server kita 123.123.123.123 bisa untuk domain webku.com, webmu.com, webkita.com dengan tampilan yang sama.
Agar setiap domain yang diarahkan ke IP server menjadi benar-benar domain milik kita, fungsinya adalah sbb:
if (strtolower($_SERVER['HTTP_HOST']) !== 'namadomainku.com') { header('location:https://namadomainku.com'.$_SERVER['REQUEST_URI']); exit(); }
Untuk memudahkan membaca array, daripada var_dump hehehe
function echoPre($arr) { echo '<pre>'; print_r($arr); echo '</pre>'; }
Tujuan sudah jelas, agar link kita sesuai judul berita sehingga disukai search engine.
function textToSlug($text='') { $text = trim($text); if (empty($text)) return ''; $text = preg_replace("/[^a-zA-Z0-9\-\s]+/", "", $text); $text = strtolower(trim($text)); $text = str_replace(' ', '-', $text); $text = $text_ori = preg_replace('/\-{2,}/', '-', $text); return $text; }
Kebalikan dari teks menjadi slug, dari URL menjadi teks yang mudah dibaca manusia.
function slugToText($slug='') { $slug = trim($slug); if (empty($slug)) return ''; $slug = str_replace('-', ' ', $slug); $slug = ucwords($slug); return $slug; }
Ini biasa dipakai saat ingin cache full page, beberapa plugin cache wordpress konsepnya dia membuat file statis (txt, html, dll) berdasarkan URL, jika sudah disimpan dalam cache saat ada akses ke URL tersebut tidak perlu query macem-macem, tinggal ambil dari cache yang disimpan tersebut.
berikut ini cara menyimpan teks, html, css, javascript ke dalam file statis.
$cached_file = dirname(__FILE__).'/cache/namacache.html'; ob_start(); //teks/html/css/javascript @file_put_contents($cached_file, ob_get_contents());
Kode di bawah ini bisa digunakan untuk wordpress maupun untuk web PHP pada umumnya. Contoh ini jika dipakai di wordpress terbaru.
<?php $host_http = 'yourdomain.com'; if (!isset($_SERVER['HTTP_HOST'])) $_SERVER['HTTP_HOST'] = $host_http; if (!isset($_SERVER['REQUEST_URI'])) $_SERVER['REQUEST_URI'] = ''; if (strtolower($_SERVER['HTTP_HOST']) !== $host_http) { header('location:https://'.$host_http.$_SERVER['REQUEST_URI']); exit(); } $protocol_web = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS']!=='off') || $_SERVER['SERVER_PORT']==443) ? 'https://':'http://'; if ($protocol_web==='http://') { header('location:https://'.$host_http.$_SERVER['REQUEST_URI']); exit(); } /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */define( 'WP_USE_THEMES', true ); /** Loads the WordPress Environment and Template */require( dirname( __FILE__ ) . '/wp-blog-header.php' );
ini_set('date.timezone','Asia/Jakarta');
//bisa juga ditambahkan dibawahnya date_default_timezone_set("Asia/Jakarta");
//misal url = https://namadomain/blog/proses-data.php basename(__FILE__, '.php'); output: proses-data basename(__FILE__); output: proses-data.php
$array = json_decode($json, true); if (json_last_error() !== JSON_ERROR_NONE) { echo 'json not valid'; } else { echo 'json valid'; }
<?php //menghapus semua tag <table> tanpa property dan isinya $html = preg_replace('#<table>(.*?)</table>#is', '', $html); //menghapus semua tag <tr> yang mempunyai class dimulai "tebal" $html = preg_replace('#<tr class=\"tebal(.*?)>(.*?)</tr>#is', '', $html); //menghapus semua tag <script property> dan isinya, dengan property/attribute apa saja $html = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $html); //menghapus semua tag <script property> dan isinya, dengan property/attribute apa saja $html = preg_replace('/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/is', '', $html); //menghapus semua tag <img property> dan isinya, dengan property/attribute apa saja $html = preg_replace("/<img[^>]+\>/i", "", $html);
<?php //menghapus property "type" dari tag <ul>, isinya tetap ada $html = preg_replace('/<ul type="(.+?)">(.+?)<\/ul>/i', "<ul>$2</ul>", $html);
//style akan dikosongkan/dihapus preg_replace('/(<[^>]+) style=".*?"/i', '$1', $string); //style akan dikosongkan/dihapus pada tag img preg_replace('/(<img[^>]+) style=".*?"/i', '$1', $string);
$teks = '<span class="abc" style="padding:10px;"><strong style="padding:10;margin:10;">ini teks tebal</strong></span>'; $teks = preg_replace("/<([a-z][a-z0-9]*)[^>]*?(\/?)>/si",'<$1$2>', $teks); //hasilnya=> <span><strong>ini teks tebal</strong></span> /* penjelasan regex di atas / # Mulai Pattern < # Cari '<' pada awalan setiap tag ( # Mulai group $1 nama tag [a-z] # harus berisi 'a' sampai 'z' [a-z0-9]* # harus berisi 'a' sampai 'z' atau angka '0' sampai '9'. 0 atau beberapa kali. ) # selesai Group tag [^>]*? # temukan sesuatu selain tutup tag '>', 0 atau beberapa kali, apa saja (\/?) # Mulai Group $2 - '/' jika ada > # temukan tutup tag '>' /is # finish Pattern - Case Insensitive huruf besar dan kecil dan bisa Multi-line */
function time_elapsed_string($datetime, $full = false) { $now = new DateTime; $ago = new DateTime($datetime); $diff = $now->diff($ago); $diff->w = floor($diff->d / 7); $diff->d -= $diff->w * 7; $string = array( 'y' => 'year', 'm' => 'month', 'w' => 'week', 'd' => 'day', 'h' => 'hour', 'i' => 'minute', 's' => 'second', ); foreach ($string as $k => &$v) { if ($diff->$k) { $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : ''); } else { unset($string[$k]); } } if (!$full) $string = array_slice($string, 0, 1); return $string ? implode(', ', $string) . ' ago' : 'just now'; }
function human_filesize($bytes, $dec = 2) { $size = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'); $factor = floor((strlen($bytes) - 1) / 3); return sprintf("%.{$dec}f", $bytes / pow(1024, $factor)) . @$size[$factor]; }
$data_arr = array(); $file_cache = dirname(__FILE__).'/file_cache.json'; $getcache = false; if (is_file($file_cache)) { $mod_time = filemtime($file_cache); $selisih_detik = time() - $mod_time; //$selisih_menit = floor(($selisih_detik%3600)/60); $selisih_menit = $selisih_detik/60); if ($selisih_menit < 60) { $getcache = true; } //dipanggil terus bisa jadi curl dibawah gagal $hasils = file_get_contents($file_cache); $data_arr = json_decode($hasils, true); }
//iterasi file $myfiles = array_diff(scandir(dirname(__FILE__).'/namafolder'), array('.', '..')); foreach ($myfiles as $fname_prev) { if (strpos($fname_prev, '~')!==false) continue;//biasanya untuk skip temporary file }
Demikian beberapa fungsi yang berguna yang biasa digunakan programmer PHP untuk keperluan ngoding.
Monggo jika ada yang ingin menambahkan fungsi berguna atau ingin membuat fungsi lainnya.
Semoga bermanfaat…
Bismillaahirrohmaanirrohiim... Untuk mendeteksi cpu usage tinggi memang perkara rumit, adakalanya karena codingan bermasalah, akses ke…
Bismillaahirrohmaanirrohiim... Jika tidak dirawat dan dicek berkala, log mongodb akan semakin membesar. Bahkan sampai menghabiskan…
Bismillaahirrohmaanirrohiim... Jika kita membuat website yang digunakan untuk memantau lokasi HP client, maka kita memerlukan…
Bismillaahirrohmaanirrohiim... Kali ini kita akan mencoba menerapkan rumus trigonometeri dari formula haversine, yang digunakan untuk…
Bismillaahirrohmaanirrohiim... Disini saya akan berbagi pengalaman tentang susahnya membuka tutup botol cleo kecil ukuran 220ml.…
Bismillaahirrohmaanirrohiim... Kali ini saya akan berbagi pengalaman tentang mati lampu yang disebabkan oleh permasalahan arus…