Tampilkan postingan dengan label PHP. Tampilkan semua postingan
Tampilkan postingan dengan label PHP. Tampilkan semua postingan

Konversi MySQL Timestamp ke PHP Date Format

Ketika kita membuat kolom di MySQL dengan tipe kolom timestamp dan meng-set default current_timestamp, maka data yang tersimpan adalah dalam bentuk seperti :
mysql> select fdate from t_feed;
+---------------------+
| fdate               |
+---------------------+
| 2012-03-02 07:14:59 |
| 2012-03-02 07:15:29 |
| 2012-03-02 07:16:29 |
+---------------------+
3 rows in set (0.00 sec)

Dan bentuk tersebut juga lah yang akan muncul ketika kita mengambil dengan PHP. Untuk menampilkan bentuk tanggal di PHP sesuai dengan format yang kita inginkan, PHP sudah menyediakan fungsi strtotime yang bisa mengubah timestamp MySQL menjadi Unix Timestamp.
<php
 $dat = $date_from_mysql_timestamp;
 $fdat = date('g:i d M Y', strtotime($dat));
 echo $fdat; // => 7:15 02 Mar 2012

Membuat Menu Tree PHP jQuery

Kali ini syuaa akan memberikan tutorial membuat Menu Tree dengan PHP dan jQuery.

Sebelum memulai, alahkah baiknya jika kita membuat table yang berisi informasi menu tersebut. Silahkan eksekusi query berikut untuk membuat table t_tree dengan isinya.
create table t_tree ( id integer not null auto_increment, id_parent integer, text varchar ( 50 ), link varchar ( 50 ), primary key ( id ));

insert into t_tree values ( null, 0, 'menu 1', 'index.php#' ),  ( null, 0, 'menu 2', 'index.php#' ),  ( null, 0, 'menu 3', 'index.php#' ),  ( null, 0, 'menu 4', 'index.php#' ),  ( null, 0, 'menu 5', 'index.php#' ),  ( null, 2, 'sub menu 2 1', 'index.php#' ),  ( null, 2, 'sub menu 2 2', 'index.php#' ),  ( null, 2, 'sub menu 2 3', 'index.php#' ),  ( null, 2, 'sub menu 2 4', 'index.php#' ),  ( null, 2, 'sub menu 2 4', 'index.php#' ),  ( null, 6, 'sub menu 2 1 1', 'index.php#' ),  ( null, 6, 'sub menu 2 1 2', 'index.php#' ),  ( null, 6, 'sub menu 2 1 3', 'index.php#' ),  ( null, 11, 'sub menu 2 1 1 1', 'index.php#' ),  ( null, 11, 'sub menu 2 1 1 2', 'index.php#' ),  ( null, 11, 'sub menu 2 1 1 3', 'index.php#' ),  ( null, 11, 'sub menu 2 1 1 4', 'index.php#' ),  ( null, 11, 'sub menu 2 1 1 5', 'index.php#' ),  ( null, 16, 'sub menu 2 1 1 2 1', 'index.php#' ),  ( null, 16, 'sub menu 2 1 1 2 2', 'index.php#' ),  ( null, 16, 'sub menu 2 1 1 2 3', 'index.php#' ),  ( null, 16, 'sub menu 2 1 1 2 4', 'index.php#' ),  ( null, 16, 'sub menu 2 1 1 2 5', 'index.php#' ),  ( null, 3, 'sub menu 3 1', 'index.php#' ),  ( null, 3, 'sub menu 3 2', 'index.php#' ),  ( null, 3, 'sub menu 3 3', 'index.php#' ),  ( null, 3, 'sub menu 3 4', 'index.php#' ),  ( null, 3, 'sub menu 3 5', 'index.php#' ),  ( null, 27, 'sub menu 3 4 1', 'index.php#' ),  ( null, 27, 'sub menu 3 4 2', 'index.php#' ),  ( null, 27, 'sub menu 3 4 3', 'index.php#' ),  ( null, 27, 'sub menu 3 4 4', 'index.php#' );
Dan akan menghasilkan table dengan bentuk kurang lebih seperti ini :
mysql> select * from t_tree;
+----+-----------+--------------------+------------+
| id | id_parent | text               | link       |
+----+-----------+--------------------+------------+
|  1 |         0 | menu 1             | index.php# |
|  2 |         0 | menu 2             | index.php# |
|  3 |         0 | menu 3             | index.php# |
|  4 |         0 | menu 4             | index.php# |
|  5 |         0 | menu 5             | index.php# |
|  6 |         2 | sub menu 2 1       | index.php# |
|  7 |         2 | sub menu 2 2       | index.php# |
|  8 |         2 | sub menu 2 3       | index.php# |
|  9 |         2 | sub menu 2 4       | index.php# |
| 10 |         2 | sub menu 2 4       | index.php# |
| 11 |         6 | sub menu 2 1 1     | index.php# |
| 12 |         6 | sub menu 2 1 2     | index.php# |
| 13 |         6 | sub menu 2 1 3     | index.php# |
| 14 |        11 | sub menu 2 1 1 1   | index.php# |
| 15 |        11 | sub menu 2 1 1 2   | index.php# |
| 16 |        11 | sub menu 2 1 1 3   | index.php# |
| 17 |        11 | sub menu 2 1 1 4   | index.php# |
| 18 |        11 | sub menu 2 1 1 5   | index.php# |
| 19 |        16 | sub menu 2 1 1 2 1 | index.php# |
| 20 |        16 | sub menu 2 1 1 2 2 | index.php# |
| 21 |        16 | sub menu 2 1 1 2 3 | index.php# |
| 22 |        16 | sub menu 2 1 1 2 4 | index.php# |
| 23 |        16 | sub menu 2 1 1 2 5 | index.php# |
| 24 |         3 | sub menu 3 1       | index.php# |
| 25 |         3 | sub menu 3 2       | index.php# |
| 26 |         3 | sub menu 3 3       | index.php# |
| 27 |         3 | sub menu 3 4       | index.php# |
| 28 |         3 | sub menu 3 5       | index.php# |
| 29 |        27 | sub menu 3 4 1     | index.php# |
| 30 |        27 | sub menu 3 4 2     | index.php# |
| 31 |        27 | sub menu 3 4 3     | index.php# |
| 32 |        27 | sub menu 3 4 4     | index.php# |
+----+-----------+--------------------+------------+
32 rows in set (0.01 sec)
Step 1 :
Membuat file tree.php yang berisi skrip untuk kontruksi menu tree
<?php

$cont = mysql_connect("localhost", "root", "");
$sel = mysql_select_db("test");

$qtree = mysql_query("SELECT * FROM `t_tree` ORDER BY `id_parent`, `id` ASC");

while(false !== $tr = mysql_fetch_assoc($qtree))
     if(!empty($tr))
          $tre[] = $tr;

global $tree;
foreach($tre as $v)
     $tree[$v['id']] = $v;
$tx = "";
$tx.= my_parent(0);

function my_parent($id) {
     global $tree;
     $tx = "";
     foreach($tree as $v){
          if($v['id_parent'] == $id){
               $me = $v;
               unset($tree[$v['id']]);
               $child = my_parent($me['id']);

               $class = empty($child) ? "unchild" : "has_child";

               $tx.= "<li class='$class'>";
               $tx.= "<a href='$me[link]' title='$me[text]'>$me[text]</a>";
               $tx.= $child;
               $tx.= "</li>";
          }
     }
     if(!empty($tx)){
          $cl = $id > 0 ? " class='child'" : "";
          return "<ul$cl>$tx</ul>";
     }
     return "";
}
Step 2 : Membuat file index.php yang menampilkan menu tree
<?php require_once('tree.php'); ?>
<html>
<head>
<title>PHP Tree</title>

<style>
body {
     font: 12px "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, Verdana, sans-serif;
}
ul {
     list-style-type:none;
     margin:0;
     padding:5px;
}
ul.child {
     display:none;
}
li {
     padding-left:40px;
     background:transparent url(folder-unchild.png) 0 0 no-repeat;
     width:125px;
}
li.has_child {
     background-image: url(sign-close.png);
     background-position: top left;
}
li.open_child {
     background-image:url(sign-open.png);
     background-position: top left;
}

</style>
<script type='text/javascript' src='jq.js'></script>
</head>

<body>
<?php echo $tx; ?>

<script>
     $('li').click(function(event) {
          event.stopPropagation();
          if($(this).children('ul').get(0)) {
               var m = $(this).children('ul').get(0);
               if($(m).css('display') == 'none'){
                    $(this).attr('class', 'open_child');
                    $(m).slideDown('fast');
               }else{
                    $(this).attr('class', 'has_child');
                    $(m).slideUp('fast');
               }
          }
     });
</script>
</body>
</html>

Demo : http://demo.syuaa.net/Menu_Tree_PHP_jQuery/demo.html
Download : http://demo.syuaa.net/Menu_Tree_PHP_jQuery/download/

Mengecheck Keberadaan Table MySQL

Dalam trik query ini, syuaa ingin menjelaskan bagaimana cara untuk mengetahui keberadaan suatu table dalam database mysql.

Hal ini mungkin perlu jika Anda membuat suatu kondisi dimana user bisa membuatkan table tambahan.

Untuk melakukannya cukup dengan menjalankan perintah berikut :

$table_name = "nama_table";
$sql = mysql_query("DESC $table_name");
if(mysql_errno()==1146)
    echo "Table belum ada";
elseif(!mysql_errno())
    echo "Table sudah ada";

Membuat Header PDF Dengan Haru PHP Library

Kali ini syuaa akan memberikan sedikit contoh membuat header pdf dengan bahasa PHP Haru Library. Silahkan copy dan paste script berikut dan simpan dengan nama apa saja yang Anda inginkan, kemudian jalankan dari browser Anda. Jangan lupa buat sebuah file di folder Anda dengan nama logo.jpg.
<?php

/* Preparation Information */
$docPaddingTop = 40;
$docPaddingLeft = 50;
$docPaddingRight = 50;
$docPaddingBottom = 50;

$compName = "Google Inc";
$compAddress = "1600 Amphitheatre Parkway Mountain View, CA 94043.";
$compAddress2 = "Telepon: +1 650-253-0000, Faks: +1 650-253-0001.";

/* Create PDF Document */
$doc = new HaruDoc;
$doc->setPageMode(HaruDoc::PAGE_MODE_USE_THUMBS);

/* Preparation Font */
$timesNormal = $doc->getFont('Times-Roman');
$timesBold = $doc->getFont('Times-Bold');

/* Preparation Logo */
$logo = $doc->loadJPEG('google.jpg');
$lWidth = $logo->getWidth();
$lHeight = $logo->getHeight();

/* Create New Page */
$page = $doc->addPage();
$page->setSize(HaruPage::SIZE_A4, HaruPage::PORTRAIT);

$pWidth=$page->getWidth();
$pHeight=$page->getHeight();

/* Start Creating Header */
    /* Create Logo */
    $page->drawImage($logo, $docPaddingLeft, $pHeight-$lHeight-$docPaddingTop, $lWidth, $lHeight);

    /* Show Title Company */
    $page->setFontandSize($timesBold, 14);
    $page->beginText();
    $page->textOut($lWidth+$docPaddingLeft+10, $pHeight-$docPaddingTop-14, $compName);
    $page->setFontandSize($timesNormal, 12);
    $page->textOut($lWidth+$docPaddingLeft+10, $pHeight-$docPaddingTop-26, $compAddress);
    $page->textOut($lWidth+$docPaddingLeft+10, $pHeight-$docPaddingTop-38, $compAddress2);
    $page->endText();

    /* Create Horizontal Line */
    $page->setRGBStroke(0,0,0);
    $page->setRGBFill(1,1,1);
    $page->moveTo($docPaddingLeft, $pHeight-$lHeight-$docPaddingTop-2);
    $page->lineTo($pWidth-$docPaddingRight, $pHeight-$lHeight-$docPaddingTop-2);
    $page->fillStroke();

/* Save and Show it to download */
$doc->save('header.pdf');
header('Content-Type: application/pdf');
$showit = file_get_contents('header.pdf');
echo $showit;

Penjelasan :
Line 4-7 : Membuat variable untuk padding halaman
Line 9-11 : Membuat informasi dasar Header
Line 14 : Membuat dokumen pdf baru
Line 15 : Membuat tampilan utama halaman pada saat dibuka user
Line 18-19 : Membaut varibale yang akan menyimpan informasi font yang digunakan
Line 22-24 : Membuat variable yang akan menyimpan informasi logo
Line 27 : Membuat halam baru
Line 28 : Menentukan halaman baru tersebut berukuran A4, dan berpenampilan Portait
Line 30-31 : Mengambil informasi halaman baru tersebut
Line 35 : Menempel logo di bagian atas kiri halaman
Line 38-44 : Menempel informasi yang di set pada line 9-11
Line 47-51 : Membuat garis horizontal tepat dibawah logo
Line 54 : Menyimpan file tersebut kedalam direktori dengan nama header.pdf
Line 55-57 : Memberikan pilihan kepada user untuk mendownload file tersebut.

Aplikasi SOAP Pertama, Hello World SOAP Tutorial

Bagi yang sudah terbiasa dengan WSDL (Web Service Definition Language) pasti sudah terbiasa menggunakan SOAP (Simple Object Access Protocol). Kali ini Syuaa akan memberikan sedikit contoh aplikasi SOAP Hello World agar lebih mudah memahami belajar SOAP.

Hal yang pertama dilakukan adalah membuat Script Server Side, Script yang akan menangani Request Client Side.
<?php
function HelloWorld($MyName) {
     return 'Hello World, and Hello '.$MyName;
}

$server = new SoapServer(NULL, array(
          'soap_version'=>SOAP_1_2,
          'encoding'=>'ISO-8859-1',
          'uri'=>'http://www.w3.org/2001/12/soap-encoding'
          ));

$server->addFunction("HelloWorld");
$server->handle();
?>

Nilai NULL pertama dari class SoapServer akan bernilai lain jika SOAP menggunakan WSDL Server Side Script.
SoapServer : Membentuk sebuah SOAP Server baru.
soap_version : versi SOAP yang kita gunakan, saat ini ada pilihan (SOAP_1_1, dan SOAP_1_2).
encoding : Encoding yang digunakan, harus di set karena SOAP tidak memiliki nilai encoding default.
uri : Kurang lebih sama dengan encoding, nilai default nya adalah 'http://www.w3.org/2001/12/soap-encoding'.

Simpan script tersebut dengan nama server.php di htdocs Anda. Misal di http://localhost/server.php

Selanjutnya adalah membuat sebuah script untuk client side, yang akan menjalankan function Hello World yang ada pada Server Side.

<?PHP
$client = new SoapClient(NULL, array(
          'location'=>'http://localhost/server.php',
          'uri'=>'http://localhost/',
          'trace'=>1
          ));

     $return = $client->__soapCall("HelloWorld", array('Syuaa'));
     echo $client->__getLastResponse();
?>

Simpan script tersebut dengan nama index.php di htdocs Anda. Misal di http://localhost/index.php

Maka nilai pengembalian dengan menjalankan script index.php diatas adalah :



     
          
               
                    Hello World, and Hello Syuaa
               
          
     

Mengecek Keberadaan Teks Pada Webside Orang

Dalam kasus ini, Syuaa akan memberikan contoh memastikan keberadaan suatu teks atau string pada
sebuah website orang lain. Hal ini tentu bisa digunakan untuk mengetahui sudahkah mereka memasang link Anda di website nya? sebelum Anda memasang backlink di blog/website Anda.

Langkah pertama adalah dengan mengambil keseluruhan teks HTML pada website tersebut.
<?php
$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, "http://syuaa.blogspot.com");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$insideit = curl_exec($curl);
curl_close($curl);
...
Penjelasan
Baris 1 : Membentuk curl session.
Baris 3 : Menentukan URL yang akan diambil.
Baris 4 : Memberikan perintah kepada PHP agar menyimpan skript HTML yang diambil kedalam suatu variable.
Baris 6 : Memberikan perintah kepada PHP agar menjalankan semua option curl yang di tentukan diatasnya.
Baris 7 : Menutup sesi curl dan mengosongkan semua resource.

Setelah berhasil menyimpan keseluruhan skrip HTML kedalam variable $insideit. Maka selanjutnya adalah mengecek keberadaan text tertentu dalam sekumpulan teks tersebut. Caranya adalah dengan menggunakan function PHP preg_match.
...
$urlonsearch = "http://syuaa.blogspot.com";
$ifexists = "Text tersebut telah ada di ".$urlonsearch;
$ifnotexists = "Text tersebut belum ada di ".$urlonsearch;

echo preg_match('!linkexchange.syuaa.net/!i', $insideit) ? $ifexists : $ifnotexists;
?>

Skrip lengkap nya bisa dilihat dibawah, telah dimodifikasi agar lebih simpel.
<?php
$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, "http://syuaa.blogspot.com");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$insideit = curl_exec($curl);
curl_close($curl);

echo preg_match('!linkexchange.syuaa.net/!i', $insideit) 
   ? "Text tersebut telah ada di " 
   : "Text tersebut belum ada di ";
echo "http://syuaa.blogspot.com";
?>

Setelah melakukan sedikit percobaan, skrip di bawah juga akan menghasilkan nilai yang sama. Lebih simpel, dan lebih pendek, tetapi belum terlalu mengerti apakah memiliki nilai yang sama untuk semua kondisi atau tidak.
<?php
$insideit = file_get_contents('http://syuaa.blogspot.com');

echo preg_match('!linkexchange.syuaa.net/!i', $insideit) 
   ? "Text tersebut telah ada di " 
   : "Text tersebut belum ada di ";
echo "http://syuaa.blogspot.com";
?>

Fungsi Pengganti If Else pada PHP Bagian 2

Sebelumnya pernah dijelaskan cara penulisan If Else yang lebih simpel dengan menggunakan (condition) ? (action if true) : (action if false);.
Dan kali ini Syuaa akan memberikan sebuah cara penulisan If Else dalam bentuk yang lain. Pada umumnya penulisan If Else yang benar adalah sebagai berikut:
if(condition) {
   "condition if true;"
}else{
   "condition if false;"
}

Untuk menggantinya bisa menggunakan struktur If Else seperti dibawah. Lebih simpel, dan tanpa tanda "{" dan "}".
if(condition)
   "condition if true;"
else
   "condition if false;"

Tentu saja dengan ketentuan bahwa condition if true/false nya harus hanya berisi satu aksi. Jika aksinya lebih dari satu, dan berada dalam kondisi if true, maka browser akan mengembalikan nilai error.
Parse error: syntax error, unexpected T_ELSE in /var/www/html/syuaa/index.php on line [line error]

Hal itu terjadi karena struktur If Else diatas hanya bisa mengeksekusi satu aksi. Begitu juga jika aksi pada else ditambah satu aksi baru, maka aksi tersebut akan dianggap diluar dari fungsi If Else.

Untuk aplikasinya bisa dilihat pada contoh dibawah :
$x = "Syuaa";

if($x == "Syuaa") {
   echo "Selamat datang Syuaa";
}else{
   echo "Maaf, Anda tidak dikenali";
}

Setelah dikonversi maka hasilnya seperti ini :
$x = "Syuaa";

if($x=="Syuaa")
   echo "Selamat datang Syuaa";
else
   echo "Maaf, Anda tidak dikenali";

Escaping PHP Code

Dalam kondisi tertentu mungkin akan lebih mudah escape sebentar dari PHP code untuk menulis code HTML yang komplikasi.
contohnya :
$cond = 1;

if($cond) {
   echo "I know the condition show that is true,
      buat should you use this command to me?
      will try to know it.";
}else{
   echo "I now know that conditionb is set to false.
      That's why this code shown here\".
      i think i get it.";
}


Untuk mempermudah penulisan code HTML diantara code PHP, ada baiknya menggunakan cara escaping code seperti ini :
$cond = 1;

if($cond) {
   echo <<<SYUAA 
      "i know the condition show that is buat should you use this command to b
      I will try to know it."
SYUAA;
}else{
   echo <<<END
      "I now know that conditionb is set to
      false. That's why this code shown here".
      i think i get it."
END;
}


<<<[TEXT] bisa saja Anda ganti menjadi apa saja yang Anda inginkan, dengan ketentuan ditutup oleh [TEXT]; yang sama.

Pemaksaan Return Function PHP

Secara default suatu function bisa mengembalikan hasil dengan cara seperti ini :
function prf($value) {
   if($value) {
      return "This is true";
   }else{
      return "This is false";
   }
}


Dalam contoh diatas ada 2 kemungkinan value yang direturn. Function diatas dapat dipersimpel dengen penulisan code seperti ini :
function prf($value) {
   if($value) 
      return "This is true";
   return "This is false";
}


Kedua contoh diatas akan menghasilkan return yang sama.

Pada contoh kedua, function akan menguji kebenaran $value, jika benar, maka akan mengembalikan nilai "This is true". Dikarenakan satu function hanya bisa mengembalikan satu nilai, maka nilai return yang kedua tidak akan dijalankan.

Tetapi jika $value tidak benar, maka return yang pertama akan dilewati, dan return yang kedua akan dikembalikan kepada function.

Fungsi Pengganti If Else pada PHP

Secara standar, fungsi If Else dapat dilihat sebagai berikut :
if(condition) {
   "condition if true";
}else{
   "condition if false";
}

Untuk menggantinya, bisa menggunakan operator ? dan : sehingga code diatas bisa dipersingkat menjadi seperti ini:
condition ? "condition if true" : "condition if false";

Untuk penggunaannya bisa dilihat pada contoh dibawah :
$x = "Syuaa";
if($x == "Syuaa") {
   echo "Selamat datang Syuaa"; 
}else{
   echo "Maaf, Anda tidak di kenal"; 
}

Setelah di konversi, maka hasilnya seperti ini :
$x = "Syuaa";
echo $x=="Syuaa" ? "Selamat datang Syuaa" : "Maaf, Anda tidak dikenal";