Test Block Top

The Blog...
Articles, Tips & Trick and Other Interesting Information...
Tampilkan postingan dengan label PHP. Tampilkan semua postingan
Tampilkan postingan dengan label PHP. Tampilkan semua postingan
06 Mei 2012

PHP To JavaScript Converter

Tidak sengaja saya baru saja menemukan script unik di google code, script PHP yang dapat convert File PHP ke JavaScript. Penasaran! Langsung saja ke TKP. Berikut cara sederhana convert file PHP ke JavaScript.

Pertama, persyaratan untuk dapat menjalankan script PHP to JavaScript Converter ini adalah Webserver (Setidaknya Apache Webserver harus terinstall di server). Jika anda punya account hosting, anda bisa langsung melanjutkan tutorial ini. Namun jika tidak ada, tidak masalah. Script ini bisa juga dijalankan oleh Apache yang terinstall pada sistem operasi Windows (menggunakan WAMP Server).

Kedua, code simple PHP to JavaScript Converter. Copy code PHP di bawah ini kemudian simpan dengan nama terserah (bebas). Misal, php2js.php:



<?php
error_reporting(E_ALL);
class PHP2js {
/** @var array holds tokens of the php file being converted */
private $_tokens;
/** @var int number of tokens */
private $count;
/** @var int the current token */
private $current = 0;
/** @var javascript gets collected here */
private $js;

/** @var array these token keys will be converted to their values */
private $_convert = array (
'T_IS_EQUAL'=>'==',
'T_IS_GREATER_OR_EQUAL'=>'>=',
'T_IS_SMALLER_OR_EQUAL'=>'<=',
'T_IS_IDENTICAL'=>'===',
'T_IS_NOT_EQUAL'=>'!=',
'T_IS_NOT_IDENTICAL'=>'!==',
'T_IS_SMALLER_OR_EQUA'=>'<=',
'T_BOOLEAN_AND'=>'&&',
'T_BOOLEAN_OR'=>'||',
'T_CONCAT_EQUAL'=>'+= ',
'T_DIV_EQUAL'=>'/=',
'T_DOUBLE_COLON'=>'.',
'T_INC'=>'++',
'T_MINUS_EQUAL'=>'-=',
'T_MOD_EQUAL'=>'%=',
'T_MUL_EQUAL'=>'*=',
'T_OBJECT_OPERATOR'=>'.',
'T_OR_EQUAL'=>'|=',
'T_PLUS_EQUAL'=>'+=',
'T_SL'=>'<<',
'T_SL_EQUAL'=>'<<=',
'T_SR'=>'>>',
'T_SR_EQUAL'=>'>>=',
'T_START_HEREDOC'=>'<<<',
'T_XOR_EQUAL'=>'^=',
'T_NEW'=>'new',
'T_ELSE'=>'else',
'.'=>'+',
'T_IF'=>'if',
'T_RETURN'=>'return',
'T_AS'=>'in',
'T_WHILE'=>'while',
'T_LOGICAL_AND' => 'AND',
'T_LOGICAL_OR' => 'OR',
'T_LOGICAL_XOR' => 'XOR',
'T_EVAL' => 'eval',
'T_ELSEIF' => 'else if',
'T_BREAK' => 'break',
'T_DOUBLE_ARROW' => ':',
);

/** @var array these tokens stays the same */
private $_keep = array(
'=', ',', '}', '{', ';', '(', ')', '*', '/', '+', '-', '>', '<', '[', ']',
);

/** @var array these tokens keeps their value */
private $_keepValue = array (
'T_CONSTANT_ENCAPSED_STRING', 'T_STRING', 'T_COMMENT', 'T_ML_COMMENT', 'T_DOC_COMMENT', 'T_LNUMBER',
'T_WHITESPACE',
);

/**
* constructor, runs the show
*
* @param string $file path (relative or absolute) to the php file that is converted to js
*/
public function __construct ($file) {
$this->file = $file;
$this->_tokens = $this->getTokens($file);
$this->count = count($this->_tokens)-1;
$this->compileJs();

}

/**
* gets tokens from file. Remove the meta PHP2js stuff.
*
* @param string $file path (relative or absolute) to the php file that is converted to js
* @return array
*/
private function getTokens($file) {
$src = file_get_contents($this->file);
$src = preg_replace ("/\n([\t ]*)require.*PHP2js\.php.*\'.*;/Uis", "", $src);
$src = preg_replace ("/\n([\t ]*)new.*PHP2js.*;/Uis", "", $src);
$this->src = $src;
return token_get_all($src);
}

/**
* loops through tokens and convert to js
*
*/
private function compileJs() {
foreach ($this->_tokens as $_) {
$this->next ($name, $value);
$this->parseToken($name, $value, $this->js);
}
}

/**
* output the js and die
*/
private function renderJs () {
echo "<script>$this->js</script>";
die();
}

/**
* changed referenced args to name and value of next token
*
* @param string $name
* @param string $value
* @param unknown_type $i, the amount of nexts to skip
*/
private function next(& $name, & $value, $i=1) {
for ($j=0; $j<$i; $j++) {
$this->current++;
if ($this->current > $this->count) $this->renderJs();
$_token = $this->_tokens[$this->current];
$this->getToken ($name, $value, $_token);
}
}

/**
* find and return first name matching argument
*
* @param mixed $_tokenNames
* @return string
*/
private function findFirst ($_needles) {
$name = $value = '';
for ($i=$this->current+1; $i<$this->count; $i++) {
$this->getToken($name, $value, $this->_tokens[$i]);
if (in_array($name, (array)$_needles)) {
return $name;
}
}
}

/**
* return javascript until match, match not included
*
* @param array $_needles
* @return string
*/
private function parseUntil ($_needles, $_schema=array(), $includeMatch = false) {
$name = $value = $js = $tmp = '';
while (true) {
$this->next ($name, $value);
$this->parseToken($name, $value, $tmp, $_schema);
if (in_array($name, (array)$_needles)) {
if ($includeMatch === true) {
return $tmp;
} else {
return $js;
}
}
$js = $tmp;
}
}

/**
* tries to find the token in $this->_convert, $this->_keep and $this->_keepValue
* if it fails it tries to find a method named as the token. If fails here also it throws away the token.
*
* @param string $name
* @param string $value
* @param string $js store js here by reference
*/
private function parseToken ($name, $value, & $js, $_schema=array()) {
//custom changes
if (in_array($name, array_keys ((array)$_schema))) {
$js .= $_schema[$name];
//change name to other value
} else if (in_array($name, array_keys ($this->_convert))) {
$js .= (!empty($this->_convert[$name])) ? $this->_convert[$name]: $name;
//keep key
} elseif (in_array($name, $this->_keep)) {
$js .= $name;
//keep value
} elseif (in_array($name, $this->_keepValue)) {
$js .= $value;
//call method
} else {
if (method_exists($this, $name)) {
$js .= $this->$name($value);
}
}
//ignore
}

/**
* converters
*
* These guys are equivalents to tokens.
*/

/**
* class definition
*
* @param sting $value
* @return string
*/
private function T_CLASS($value) {
$this->next ($name, $value, 2);
return "function $value() ";
}

/**
* define function
*
* @param string $value
* @return string
*/
private function T_FUNCTION($value) {
$this->next ($name, $value, 2);
return "this.$value = function";
}

/**
* echo is replaced with document.write
*
* @param string $value
* @return string
*/
private function T_ECHO($value) {
return 'document.write('.$this->parseUntil(';').');';
}

/**
* array. Supports both single and associative
*
* @param string $value
* @return string
*/
private function T_ARRAY($value) {
$_convert = array('('=>'{',     ')'=>'}',);
$js = $this->parseUntil(array(';'), $_convert, true);
if (strpos($js, ':') === false) {
$this->tmp = -1;
$js = preg_replace_callback ('/([{, \t\n])(\'.*\')(|.*:(.*))([,} \t\n])/Uis', array($this, 'cb_T_ARRAY'), $js);
}
return $js;
}

private function cb_T_ARRAY($_matches) {
$this->tmp++;
if (strpos($_matches[0], ':') === false) {
return ($_matches[1].$this->tmp.':'.$_matches[2].$_matches[3].$_matches[4].$_matches[5]);
} else {
return $_matches[0];
}
}
/**
* foreach. Gets converted to for (var blah in blih). Supports as $key=>$value
*
* @param string $value
* @return string
*/
private function T_FOREACH($value) {
$_vars = array();
while (true) {
$this->next ($name, $value);
if ($name == 'T_VARIABLE') $_vars[] = $this->cVar($value);
$this->parseToken($name, $value, $js);
if ($name == '{') {
if (count($_vars) == 2) {
$array = $_vars[0];
$val = $_vars[1];
$this->js .=
"for (var {$val}Val in $array) {".
"\n                        $val = $array"."[{$val}Val];";
}
if (count($_vars) == 3) {
$array = $_vars[0];
$key = $_vars[1];
$val = $_vars[2];
$this->js .=
"for (var $key in $array) {".
"\n                        $val = $array"."[$key];";
}
return '';
}
$jsTmp = $js;
}
}

/**
* declare a public class var
*
* @param string $value
* @return string
*/
private function T_PUBLIC ($value) {
$type = $this->findFirst(array('T_VARIABLE', 'T_FUNCTION'));
if ($type == 'T_FUNCTION') return '';
$js = '';
while (true) {
$this->next ($name, $value);
$this->parseToken($name, $value, $js);
if ($name == ';') {
$js = str_replace(array(' '), '', $js);
return 'this.'.$js;
} else if ($name == '=') {
$js = str_replace(array(' ','='), '', $js);
return 'this.'.$js.' =';
}
}
}

/**
* variable. Remove the $
*
* @param string $value
* @return string
*/
private function T_VARIABLE($value) {
return str_replace('$', '', $value);
}

/* helpers */

private function getToken(& $name, & $value, $_token) {
if (is_array($_token)) {
$name = trim(token_name($_token[0]));
$value = $_token[1];
} else {
$name = trim($_token);
$value = '';
}
}

private function cVar($var) {
return str_replace('$', '', $var);
}

/** debugging stuff. Ugly and deprecated. */

/** deprecated and sucks */
private $_openTags = array(
'T_OPEN_TAG', 'T_CLASS', 'T_PUBLIC', 'T_FOREACH', 'T_ARRAY', '{', 'T_VARIABLE', '('
);

/** deprecated and sucks */

/** deprecated and sucks */
private $indent = 0;
/** deprecated and sucks */
private $debug;


private $_closeTags = array(
'}', 'T_CLOSE_TAG', ';', ')',
);

public function __destruct() {
/**
$js = htmlentities ($this->js);
echo ("<pre>$js</pre>");
$this->write();
echo $this->debug;
//*/
}


private function write() {
$_tokens = token_get_all($this->src);
foreach ($_tokens as $key=>$_token) {
if (is_array($_token)) {
$name = trim(token_name($_token[0]));
$value = $_token[1];
} else {
$name = trim($_token);
$value = '';
}
$this->printToken($name, $value, $_token);
}
}

private function printToken ($name, $value, $_token) {
$value = htmlentities($value);

if (in_array($name, $this->_closeTags)) $this->indent--;
$indent = str_repeat('.&nbsp;&nbsp;&nbsp;&nbsp;', $this->indent);
if (in_array($name, $this->_openTags)) $this->indent++;
if (!empty($value))
$this->debug .= "
<br />$indent
<b>$name&nbsp;&nbsp;=&nbsp;&nbsp;'$value'</b>

";
else
$this->debug .= "
<br />$indent
<b>$name</b>

";
}
}
?>

Upload file php2js.php ke server. Kemudian buat file Baru dengan nama bebas, convert.php misalnya. Isikan convert.php dengan code PHP yang ingin anda convert (di bawah "/* Convert Code Start Here */"), kemudian upload ke web server. Misalnya seperti kode di bawah ini:



<?
require_once 'php2js.php';
new php2js(__FILE__);
/**
* My super cool php class that will be converted to js!!!
*/
/* Convert Code Start Here */
class HelloWorld {
/**
* So here goes a function that echos
*
* @param string $foo
* @param string $bar
*/
function foo($foo, $bar) {
echo $foo . ' ' . $bar;
}
}
$H = new HelloWorld;
$H->foo('Hello', 'World');
?>

Convert PHP To JavaScript

Buka file convert.php pada web browser, hasil yang keluar akan tampak seperti pada gambar Screenshot 1. Untuk melihat code JavaScript hasil convert, jika menggunakan browser Mozilla Firefox klik kanan pada halaman kosong web browser kemudian klik View Page Source (Screenshot 2), atau tekan tombol shortcut Ctrl + U. Pada jendela baru yang terbuka, anda akan melihat source code JavaScript hasil convert (Screenshot 3).



<script>
/**
* My super cool php class that will be converted to js!!!
*/
/* Convert Code Start Here */
function HelloWorld()  {
/**
* So here goes a function that echos
*
* @param string $foo
* @param string $bar
*/
this.foo = function(foo, bar) {
document.write( foo + ' ' + bar);
}
}
H = new HelloWorld;
H.foo('Hello', 'World');
</script>

convert_php_to_javascript1

Screenshot 1

convert_php_to_javascript2

Screenshot 2

convert_php_to_javascript3

Screenshot 3

Selesai. Semoga bermanfaat.
:)
29 April 2012

Install PHP Pada CentOS

Pada artikel kali ini saya akan coba share cara paling gampang install php pada CentOS. Diasumsikan anda install CentOS dengan pilihan minimal install dan anda sudah setup local yum repository.

Untuk mulai install php, ketikkan command; yum install php*.


[root@linggih ~]# yum install php*
...
...
...
---> Package enchant.x86_64 1:1.5.0-4.el6 will be installed
--> Processing Dependency: libhunspell-1.2.so.0()(64bit) for package: 1:enchant-1.5.0-4.el6.x86_64
---> Package libc-client.x86_64 0:2007e-11.el6 will be installed
---> Package libedit.x86_64 0:2.11-4.20080712cvs.1.el6 will be installed
---> Package libtidy.x86_64 0:0.99.0-19.20070615.1.el6 will be installed
---> Package libxslt.x86_64 0:1.1.26-2.el6 will be installed
---> Package net-snmp.x86_64 1:5.5-37.el6_2.1 will be installed
--> Processing Dependency: libsensors.so.4()(64bit) for package: 1:net-snmp-5.5-37.el6_2.1.x86_64
---> Package net-snmp-libs.x86_64 1:5.5-37.el6_2.1 will be installed
---> Package postgresql-libs.x86_64 0:8.4.9-1.el6_1.1 will be installed
---> Package recode.x86_64 0:3.6-28.1.el6 will be installed
---> Package unixODBC.x86_64 0:2.2.14-11.el6 will be installed
--> Processing Dependency: libltdl.so.7()(64bit) for package: unixODBC-2.2.14-11.el6.x86_64
--> Running transaction check
---> Package hunspell.x86_64 0:1.2.8-16.el6 will be installed
---> Package libtool-ltdl.x86_64 0:2.2.6-15.5.el6 will be installed
---> Package lm_sensors-libs.x86_64 0:3.1.1-10.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package              Arch      Version                        Repository  Size
================================================================================
Installing:
php                  x86_64    5.3.3-3.el6_2.6                updates    1.1 M
php-bcmath           x86_64    5.3.3-3.el6_2.6                updates     32 k
php-cli              x86_64    5.3.3-3.el6_2.6                updates    2.2 M
php-common           x86_64    5.3.3-3.el6_2.6                updates    522 k
php-dba              x86_64    5.3.3-3.el6_2.6                updates     38 k
php-devel            x86_64    5.3.3-3.el6_2.6                updates    505 k
php-embedded         x86_64    5.3.3-3.el6_2.6                updates    1.1 M
php-enchant          x86_64    5.3.3-3.el6_2.6                updates     27 k
php-gd               x86_64    5.3.3-3.el6_2.6                updates    104 k
php-imap             x86_64    5.3.3-3.el6_2.6                updates     48 k
php-intl             x86_64    5.3.3-3.el6_2.6                updates     68 k
php-ldap             x86_64    5.3.3-3.el6_2.6                updates     36 k
php-mbstring         x86_64    5.3.3-3.el6_2.6                updates    453 k
php-mysql            x86_64    5.3.3-3.el6_2.6                updates     79 k
php-odbc             x86_64    5.3.3-3.el6_2.6                updates     48 k
php-pdo              x86_64    5.3.3-3.el6_2.6                updates     73 k
php-pear             noarch    1:1.9.4-4.el6                  base       393 k
php-pecl-apc         x86_64    3.1.3p1-1.2.el6.1              base        93 k
php-pecl-memcache    x86_64    3.0.5-3.el6                    base        60 k
php-pgsql            x86_64    5.3.3-3.el6_2.6                updates     68 k
php-process          x86_64    5.3.3-3.el6_2.6                updates     37 k
php-pspell           x86_64    5.3.3-3.el6_2.6                updates     26 k
php-recode           x86_64    5.3.3-3.el6_2.6                updates     23 k
php-snmp             x86_64    5.3.3-3.el6_2.6                updates     28 k
php-soap             x86_64    5.3.3-3.el6_2.6                updates    138 k
php-tidy             x86_64    5.3.3-3.el6_2.6                updates     34 k
php-xml              x86_64    5.3.3-3.el6_2.6                updates    100 k
php-xmlrpc           x86_64    5.3.3-3.el6_2.6                updates     50 k
php-zts              x86_64    5.3.3-3.el6_2.6                updates    1.2 M
Installing for dependencies:
aspell               x86_64    12:0.60.6-12.el6               base       648 k
enchant              x86_64    1:1.5.0-4.el6                  base        49 k
hunspell             x86_64    1.2.8-16.el6                   base       177 k
libc-client          x86_64    2007e-11.el6                   base       515 k
libedit              x86_64    2.11-4.20080712cvs.1.el6       base        74 k
libtidy              x86_64    0.99.0-19.20070615.1.el6       base       127 k
libtool-ltdl         x86_64    2.2.6-15.5.el6                 base        44 k
libxslt              x86_64    1.1.26-2.el6                   base       450 k
lm_sensors-libs      x86_64    3.1.1-10.el6                   base        37 k
net-snmp             x86_64    1:5.5-37.el6_2.1               updates    300 k
net-snmp-libs        x86_64    1:5.5-37.el6_2.1               updates    1.5 M
postgresql-libs      x86_64    8.4.9-1.el6_1.1                base       198 k
recode               x86_64    3.6-28.1.el6                   base       712 k
unixODBC             x86_64    2.2.14-11.el6                  base       378 k

Transaction Summary
================================================================================
Install      43 Package(s)

Total download size: 14 M
Installed size: 47 M
Is this ok [y/N]: y
Downloading Packages:
(1/43): aspell-0.60.6-12.el6.x86_64.rpm                  | 648 kB     00:28
(2/43): enchant-1.5.0-4.el6.x86_64.rpm                   |  49 kB     00:02
(3/43): hunspell-1.2.8-16.el6.x86_64.rpm                 | 177 kB     00:06
(4/43): libc-client-2007e-11.el6.x86_64.rpm              | 515 kB     00:26
(5/43): libedit-2.11-4.20080712cvs.1.el6.x86_64.rpm      |  74 kB     00:04
(6/43): libtidy-0.99.0-19.20070615.1.el6.x86_64.rpm      | 127 kB     00:05
(7/43): libtool-ltdl-2.2.6-15.5.el6.x86_64.rpm           |  44 kB     00:01
(8/43): libxslt-1.1.26-2.el6.x86_64.rpm                  | 450 kB     00:29
(9/43): lm_sensors-libs-3.1.1-10.el6.x86_64.rpm          |  37 kB     00:01
(10/43): net-snmp-5.5-37.el6_2.1.x86_64.rpm              | 300 kB     00:14
(11/43): net-snmp-libs-5.5-37.el6_2.1.x86_64.rpm         | 1.5 MB     01:11
(12/43): php-5.3.3-3.el6_2.6.x86_64.rpm                  | 1.1 MB     01:04
(13/43): php-bcmath-5.3.3-3.el6_2.6.x86_64.rpm           |  32 kB     00:01
(14/43): php-cli-5.3.3-3.el6_2.6.x86_64.rpm              | 2.2 MB     01:45
(15/43): php-common-5.3.3-3.el6_2.6.x86_64.rpm           | 522 kB     00:21
(16/43): php-dba-5.3.3-3.el6_2.6.x86_64.rpm              |  38 kB     00:00
(17/43): php-devel-5.3.3-3.el6_2.6.x86_64.rpm            | 505 kB     00:19
(18/43): php-embedded-5.3.3-3.el6_2.6.x86_64.rpm         | 1.1 MB     00:50
(19/43): php-enchant-5.3.3-3.el6_2.6.x86_64.rpm          |  27 kB     00:00
(20/43): php-gd-5.3.3-3.el6_2.6.x86_64.rpm               | 104 kB     00:04
(21/43): php-imap-5.3.3-3.el6_2.6.x86_64.rpm             |  48 kB     00:04
(22/43): php-intl-5.3.3-3.el6_2.6.x86_64.rpm             |  68 kB     00:02
(23/43): php-ldap-5.3.3-3.el6_2.6.x86_64.rpm             |  36 kB     00:01
(24/43): php-mbstring-5.3.3-3.el6_2.6.x86_64.rpm         | 453 kB     00:20
(25/43): php-mysql-5.3.3-3.el6_2.6.x86_64.rpm            |  79 kB     00:03
(26/43): php-odbc-5.3.3-3.el6_2.6.x86_64.rpm             |  48 kB     00:03
(27/43): php-pdo-5.3.3-3.el6_2.6.x86_64.rpm              |  73 kB     00:03
(28/43): php-pear-1.9.4-4.el6.noarch.rpm                 | 393 kB     00:32
(29/43): php-pecl-apc-3.1.3p1-1.2.el6.1.x86_64.rpm       |  93 kB     00:04
(30/43): php-pecl-memcache-3.0.5-3.el6.x86_64.rpm        |  60 kB     00:02
(31/43): php-pgsql-5.3.3-3.el6_2.6.x86_64.rpm            |  68 kB     00:04
(32/43): php-process-5.3.3-3.el6_2.6.x86_64.rpm          |  37 kB     00:01
(33/43): php-pspell-5.3.3-3.el6_2.6.x86_64.rpm           |  26 kB     00:01
(34/43): php-recode-5.3.3-3.el6_2.6.x86_64.rpm           |  23 kB     00:02
(35/43): php-snmp-5.3.3-3.el6_2.6.x86_64.rpm             |  28 kB     00:00
(36/43): php-soap-5.3.3-3.el6_2.6.x86_64.rpm             | 138 kB     00:06
(37/43): php-tidy-5.3.3-3.el6_2.6.x86_64.rpm             |  34 kB     00:01
(38/43): php-xml-5.3.3-3.el6_2.6.x86_64.rpm              | 100 kB     00:16
(39/43): php-xmlrpc-5.3.3-3.el6_2.6.x86_64.rpm           |  50 kB     00:07
(40/43): php-zts-5.3.3-3.el6_2.6.x86_64.rpm              | 1.2 MB     01:54
(41/43): postgresql-libs-8.4.9-1.el6_1.1.x86_64.rpm      | 198 kB     00:07
(42/43): recode-3.6-28.1.el6.x86_64.rpm                  | 712 kB     00:25
(43/43): unixODBC-2.2.14-11.el6.x86_64.rpm               | 378 kB     00:16
--------------------------------------------------------------------------------
Total                                            19 kB/s |  14 MB     12:34
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : php-common-5.3.3-3.el6_2.6.x86_64                           1/43
Installing : php-pdo-5.3.3-3.el6_2.6.x86_64                              2/43
Installing : lm_sensors-libs-3.1.1-10.el6.x86_64                         3/43
Installing : 1:net-snmp-libs-5.5-37.el6_2.1.x86_64                       4/43
Installing : 1:net-snmp-5.5-37.el6_2.1.x86_64                            5/43
Installing : postgresql-libs-8.4.9-1.el6_1.1.x86_64                      6/43
Installing : libedit-2.11-4.20080712cvs.1.el6.x86_64                     7/43
Installing : php-cli-5.3.3-3.el6_2.6.x86_64                              8/43
Installing : 1:php-pear-1.9.4-4.el6.noarch                               9/43
Installing : php-5.3.3-3.el6_2.6.x86_64                                 10/43
Installing : recode-3.6-28.1.el6.x86_64                                 11/43
Installing : 12:aspell-0.60.6-12.el6.x86_64                             12/43
Installing : libxslt-1.1.26-2.el6.x86_64                                13/43
Installing : libc-client-2007e-11.el6.x86_64                            14/43
Installing : libtidy-0.99.0-19.20070615.1.el6.x86_64                    15/43
Installing : libtool-ltdl-2.2.6-15.5.el6.x86_64                         16/43
Installing : unixODBC-2.2.14-11.el6.x86_64                              17/43
Installing : hunspell-1.2.8-16.el6.x86_64                               18/43
Installing : 1:enchant-1.5.0-4.el6.x86_64                               19/43
Installing : php-enchant-5.3.3-3.el6_2.6.x86_64                         20/43
Installing : php-odbc-5.3.3-3.el6_2.6.x86_64                            21/43
Installing : php-tidy-5.3.3-3.el6_2.6.x86_64                            22/43
Installing : php-imap-5.3.3-3.el6_2.6.x86_64                            23/43
Installing : php-xml-5.3.3-3.el6_2.6.x86_64                             24/43
Installing : php-pspell-5.3.3-3.el6_2.6.x86_64                          25/43
Installing : php-recode-5.3.3-3.el6_2.6.x86_64                          26/43
Installing : php-devel-5.3.3-3.el6_2.6.x86_64                           27/43
Installing : php-pecl-apc-3.1.3p1-1.2.el6.1.x86_64                      28/43
Installing : php-pecl-memcache-3.0.5-3.el6.x86_64                       29/43
Installing : php-pgsql-5.3.3-3.el6_2.6.x86_64                           30/43
Installing : php-snmp-5.3.3-3.el6_2.6.x86_64                            31/43
Installing : php-mysql-5.3.3-3.el6_2.6.x86_64                           32/43
Installing : php-gd-5.3.3-3.el6_2.6.x86_64                              33/43
Installing : php-mbstring-5.3.3-3.el6_2.6.x86_64                        34/43
Installing : php-zts-5.3.3-3.el6_2.6.x86_64                             35/43
Installing : php-intl-5.3.3-3.el6_2.6.x86_64                            36/43
Installing : php-embedded-5.3.3-3.el6_2.6.x86_64                        37/43
Installing : php-soap-5.3.3-3.el6_2.6.x86_64                            38/43
Installing : php-process-5.3.3-3.el6_2.6.x86_64                         39/43
Installing : php-bcmath-5.3.3-3.el6_2.6.x86_64                          40/43
Installing : php-ldap-5.3.3-3.el6_2.6.x86_64                            41/43
Installing : php-dba-5.3.3-3.el6_2.6.x86_64                             42/43
Installing : php-xmlrpc-5.3.3-3.el6_2.6.x86_64                          43/43

Installed:
php.x86_64 0:5.3.3-3.el6_2.6
php-bcmath.x86_64 0:5.3.3-3.el6_2.6
php-cli.x86_64 0:5.3.3-3.el6_2.6
php-common.x86_64 0:5.3.3-3.el6_2.6
php-dba.x86_64 0:5.3.3-3.el6_2.6
php-devel.x86_64 0:5.3.3-3.el6_2.6
php-embedded.x86_64 0:5.3.3-3.el6_2.6
php-enchant.x86_64 0:5.3.3-3.el6_2.6
php-gd.x86_64 0:5.3.3-3.el6_2.6
php-imap.x86_64 0:5.3.3-3.el6_2.6
php-intl.x86_64 0:5.3.3-3.el6_2.6
php-ldap.x86_64 0:5.3.3-3.el6_2.6
php-mbstring.x86_64 0:5.3.3-3.el6_2.6
php-mysql.x86_64 0:5.3.3-3.el6_2.6
php-odbc.x86_64 0:5.3.3-3.el6_2.6
php-pdo.x86_64 0:5.3.3-3.el6_2.6
php-pear.noarch 1:1.9.4-4.el6
php-pecl-apc.x86_64 0:3.1.3p1-1.2.el6.1
php-pecl-memcache.x86_64 0:3.0.5-3.el6
php-pgsql.x86_64 0:5.3.3-3.el6_2.6
php-process.x86_64 0:5.3.3-3.el6_2.6
php-pspell.x86_64 0:5.3.3-3.el6_2.6
php-recode.x86_64 0:5.3.3-3.el6_2.6
php-snmp.x86_64 0:5.3.3-3.el6_2.6
php-soap.x86_64 0:5.3.3-3.el6_2.6
php-tidy.x86_64 0:5.3.3-3.el6_2.6
php-xml.x86_64 0:5.3.3-3.el6_2.6
php-xmlrpc.x86_64 0:5.3.3-3.el6_2.6
php-zts.x86_64 0:5.3.3-3.el6_2.6

Dependency Installed:
aspell.x86_64 12:0.60.6-12.el6
enchant.x86_64 1:1.5.0-4.el6
hunspell.x86_64 0:1.2.8-16.el6
libc-client.x86_64 0:2007e-11.el6
libedit.x86_64 0:2.11-4.20080712cvs.1.el6
libtidy.x86_64 0:0.99.0-19.20070615.1.el6
libtool-ltdl.x86_64 0:2.2.6-15.5.el6
libxslt.x86_64 0:1.1.26-2.el6
lm_sensors-libs.x86_64 0:3.1.1-10.el6
net-snmp.x86_64 1:5.5-37.el6_2.1
net-snmp-libs.x86_64 1:5.5-37.el6_2.1
postgresql-libs.x86_64 0:8.4.9-1.el6_1.1
recode.x86_64 0:3.6-28.1.el6
unixODBC.x86_64 0:2.2.14-11.el6

Complete!
[root@linggih ~]#

Setelah php terinstall, restart apache dengan command: /etc/init.d/httpd restart atau service httpd restart



[root@linggih ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
[root@linggih ~]#

Untuk cek info php, buat file php baru dengan nama terserah (misalnya: phpinfo.php). Kemudian isikan code php berikut pada file php:



<?php phpinfo(); ?>



[root@linggih ~]# cd /var/www/html
[root@linggih html]# touch phpinfo.php
[root@linggih html]# nano phpinfo.php
[root@linggih html]#

Buka dokumen halaman php yang baru saja dibuat pada halaman web browser (http://domain-anda/phpinfo.php)

Install PHP: PHP Info

Install PHP: PHP Info

Selesai. Semoga bermanfaat.
:D
07 Maret 2012

Install GD Image Support For PHP Pada cPanel/WHM Server

PHP (PHP Hypertext Preprocessor) tidak hanya terbatas untuk membuat output dokumen HTML saja, namun juga bisa digunakan untuk membuat dan memanipulasi file-file gambar dalam variasi format yang berbeda (GIF, PNG, JPEG, WBMP, dan XPM). Dengan kata lain, PHP dapat membuat output stream gambar langsung ke browser.

Untuk dapat mengaktifkan fungsi ini, diperlukan compile "GD Image Support For PHP". Berikut tutorial singkat install 'GD Image Support For PHP' pada cPanel/WHM Server:

» WHM » Software » EasyApache (Apache Update)

[caption id="attachment_1235" align="alignnone" width="150" caption="EasyApache: Image Manipulation"]GD Image Support For PHP cPanel/WHM[/caption]

» Klik 'PHP Encryption and Image Manipulation [More Info]'

» Klik tombol 'Build Profile Now'

[caption id="attachment_1237" align="alignnone" width="150" caption="EasyApache: Image Manipulation 2"]GD Image Support For PHP cPanel/WHM2[/caption]

» Kotak dialog konfirmasi 'Recompile Apache and PHP now?' → klik tombol Yes

[caption id="attachment_1238" align="alignnone" width="150" caption="EasyApache: Image Manipulation 3"]GD Image Support For PHP cPanel WHM3[/caption]

» Please acknowledge 'Termination of the build process will result in data loss! The build process is...' → klik tombol I Understand

[caption id="attachment_1239" align="alignnone" width="150" caption="EasyApache: Image Manipulation 4"]GD Image Support For PHP cPanel/WHM4[/caption]

» Tunggu beberapa menit sampai proses build selesai (lama tidaknya tergantung pada spesifikasi mesin server).

[caption id="attachment_1240" align="alignnone" width="150" caption="EasyApache: Image Manipulation 5"]GD Image Support For PHP cPanel/WHM5[/caption]

» Configure PHP and SuExec, biarkan default (tidak usah diedit / optional). Klik tombol Close

[caption id="attachment_1241" align="alignnone" width="150" caption="EasyApache: Image Manipulation 6"]GD Image Support For PHP cPanel/WHM6[/caption]

Untuk cek apakah GD Image Support For PHP sudah terinstall (gd baris ke-13), cek via putty dan jalankan command berikut.

php -m

[bash highlight="13"]
root@server5 [~]# php -m
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
ereg
filter
ftp
gd
hash
iconv
imap
json
libxml
mcrypt
mysql
openssl
pcre
Phar
posix
Reflection
session
SimpleXML
sockets
SPL
SQLite
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

root@server5 [~]#
[/bash]

Selesai

Referensi manual Image Processing and GD:
http://php.net/manual/en/book.image.php
01 Maret 2012

Update Versi PHP Centos (CentOS/RHEL 5.6) Ke PHP Versi 5.3

Update Versi PHP Centos (CentOS/RHEL 5.6) Ke PHP Versi 5.3



Sebelum update, pastikan menambah yum repository source RPM. Buka terminal atau remote SSH via putty, kemudian ketikkan:

[bash collapse="false"]
[root@localhost ~]# rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm
[/bash]

Upgrade versi PHP dengan mengetikkan command berikut:

[bash collapse="false"]
[root@localhost ~]# yum --enablerepo=webtatic install php
[/bash]

Atau update instalasi php yang sudah ada, dimana akan update semua modul php yang sebelumnya sudah terinstall dengan cara berikut:

[bash collapse="false"]
[root@localhost ~]# yum --enablerepo=webtatic update php
[/bash]

Selesai. Cek versi PHP dengan cara mengetikkan command "php -v":

[bash collapse="false"]
[root@localhost ~]# php -v
PHP 5.3.13 (cli) (built: May 9 2012 16:20:45)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with the ionCube PHP Loader v4.0.12, Copyright (c) 2002-2011, by ionCube Ltd.
[/bash]

Selesai.
12 Desember 2010

Membuat Form Kontak Menggunakan Simple PHP Script


Jika pada posting sebelumnya tentang cara membuat form kontak dengan menggunakan google docs & online form generator, sekarang sedikit mengulas tentang Cara Membuat Kontak Form Dengan Menggunakan Simple PHP Script.

Langsung saja & tanpa banyak basa-basi. Begini tahapannya:

Buat dahulu file phpnya.

[php]
<?php

if(!$_POST) exit;

$email = $_POST['email'];


//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){
$error.="Alamat email yang anda masukkan tidak valid";
$errors=1;
}
if($errors==1) echo $error;
else{
$values = array ('nama','email','pesan');
$required = array('nama','email','pesan');

$your_email = "emailanda@email.com";
$email_subject = "Pesan baru: ".$_POST['subject'];
$email_content = "Isi pesan:\n";

foreach($values as $key => $value){
if(in_array($value,$required)){
if ($key != 'subject' && $key != 'subject') {
if( empty($_POST[$value]) ) { echo 'Jangan kosongkan field yang wajib diisi'; exit; }
}
$email_content .= $value.': '.$_POST[$value]."\n";
}
}

if(@mail($your_email,$email_subject,$email_content)) {
echo 'Pesan terkirim! Terima Kasih. Secepatnya kami akan menanggapi pesan anda.';
} else {
echo 'ERROR!';
}
}
?>
[/php]

Copy dan pastekan kode di atas pada text editor (notepad misalnya) dan berilah nama terserah & diakhiri dengan file extention php (.php), atau;

Download filenya di sini.

Yang harus anda edit:

"Alamat email yang anda masukkan tidak valid" → Notifikasi ke visitor jika input alamat email yang di isi tidak valid.

"emailanda@email.com" → alamat email dimana seluruh konten isi pesan akan dikirimkan (isikan dengan alamat email anda).

"Pesan baru: ".$_POST['subject']" → Subjek pesan yang akan ditampilkan di alamat email anda (Pesan baru: diikuti dengan subjek pesan yang diisikan pada form kontak). Ganti tulisan "Subjek pesan:" dengan text terserah anda.

"Pesan terkirim! Terima Kasih. Secepatnya kami akan menanggapi pesan anda." → Ganti dengan kata-kata anda.

Upload file php di atas ke web server, atau jika anda akan menggunakan form kontak ini di blogspot, upload ke google site.

Selanjutnya, copy dan pastekan kode di bawah ini antara tag "<head> Kode di sini </head>" (blogspot → sisipkan kode ini pada tab "Edit HTML").

[jscript]
<script type="text/javascript">
// <![CDATA[
jQuery(document).ready(function(){
$('#contactform').submit(function(){
var action = $(this).attr('action');
$.post(action, {
Nama: $('#nama').val(),
eMail: $('#email').val(),
Subject: $('#subject').val(),
Pesan: $('#pesan').val()
},
function(data){
$('#contactform #submit').attr('disabled','');
$('.response').remove();
$('#contactform').before('<p class="response">'+data+'');
$('.response').slideDown();
if(data=='Pesan terkirim! Terima Kasih. Secepatnya kami akan menanggapi pesan anda.') $('#contactform').slideUp();
}
);
return false;
});
});
// ]]>
</script>
[/jscript]

Buat property css untuk kontak form. CSS ini terserah mau anda buat seperti apa, namun ID form harus sama dengan tag ID & Class yang ada pada kode script di atas ("#contactform" dan ".response").

Untuk blogspot, copy dan pastekan kode di bawah ini di atas kode "]]>" pada tab "Edit HTML".

[css]
#contactform {margin:0; padding:5px 10px;}
#contactform * {color:#222222;}
#contactform ol {margin:0; padding:0; list-style:none;}
#contactform li {margin:0; padding:0; background:none; border:none; display:block;}
#contactform li.buttons {margin:5px 0 5px 0;}
#contactform label {margin:0; width:110px; display:block; padding:5px 0; font:normal 12px Arial, Helvetica, sans-serif; color:#2c2c2c; text-transform:capitalize;}
#contactform label span {display:block; font:normal 10px Arial, Helvetica, sans-serif;}
#contactform input.text {width:440px; border:1px solid #dcdcdc; margin:5px 0; padding:5px 2px; height:16px; background:#f5f5f5;}
#contactform input.text:hover {border: 1px solid #048bfe;background:#fff; cursor: default}
#contactform input.text:focus {color:#222; border: 1px solid #048bfe; background:#fff; cursor:text;}
#contactform textarea {width:440px; border:1px solid #dcdcdc; margin:10px 0; padding:2px; background:#f5f5f5;}
#contactform textarea:hover {border: 1px solid #048bfe;background:#fff; cursor: default}
#contactform textareat:focus {color:#222; border: 1px solid #048bfe; background:#fff; cursor:text;}
#contactform li.buttons input {padding:3px 0; margin:0; border:0; color:#FFF;}
p.response {text-align:center; color:#2c2c2c; font:bold 11px Arial, Helvetica, sans-serif; line-height:1.8em; width:auto; }
#contactform li.buttons {margin:5px 0 5px 0;}
.kirimpesan {margin: 1em 0 1em 0; width: 116px; height: 30px; position: relative; overflow: hidden; padding: 0; border: none; }
.kirimpesan input{background: url(kirim_pesan.jpg) 0 0 no-repeat; width: 116px; height:30px; float:left; padding: 0; overflow: hidden; border: 0; text-indent: -9000px; cursor: pointer;}
.kirimpesan input:hover{background-position: 0 -30px;}
[/css]

Sekarang tinggal buat halaman presentasi (visual) kontak form. Kode html nya seperti contoh di bawah ini:

[html]
<form action="contact.php" method="post" id="contactform">
<ol>
<li>
<label for="name">Nama <span>Isikan nama anda</span></label>
<input id="name" name="name" class="text" />
</li>
<li>
<label for="email">Email <span style="text-align:left">Isikan alamat email valid</span></label>
<input id="email" name="email" class="text" />
</li>
<li>
<label for="subject">Subjek <span>Subjek pesan anda</span></label>
<input id="subject" name="subject" class="text" />
</li>
<li>
<label for="message">Pesan <span style="text-align:left">Yang ingin anda sampaikan</span></label>
<textarea id="message" name="message" rows="6" cols="50"></textarea>
</li>
<li class="buttons">
<span class="kirimpesan"><input name="imageField" type="submit" /></span>
</li>
</ol>
</form>
[/html]

Ganti "contact.php" dengan alamat url dimana script php contact anda letakkan.

Tampilannya akan seperti ini:



















Selesai. Semua pesan yang diisikan melalui form kontak di atas akan dikirimkan ke alamat email sesuai dengan alamat email pilihan anda.

Monggo dicoba.
18 Juli 2010

Trik Split & Merge File Via FTP Menggunakan Script PHP

Beberapa hari yang lalu saya terima email dari visitor blog ini. Orang tersebut tanya perihal masalah yang dia alami:

.... Ada nggak cara supaya file berukuran besar bisa dipecah menjadi beberapa bagian? Sehingga saya bisa upload setahap demi setahap, kemudian baru digabungkan kembali di webserver...


Coba pakai Compressing Software winrar, waktu mau diekstract melalui file manager cPanel hasilnya 'file tidak dikenali' (bisa jika punya akses ke SSH). Coba lagi pakai WinZIP yang terpotong menjadi beberapa bagian, tetap nggak bisa (karena hanya bisa extract 1 file). Setelah sekian kali terus mencoba, Alhamdulillah berhasil. Caranya seperti ini.

Pertama, local server (terserah mau pakai WAMP atau XAMP) harus sudah terinstall di komputer/PC. Jika belum tahu cara install WAMP, baca panduannya di sini. Setelah itu buka direktori dimana wamp server terinstall, di PC saya "C:\wamp", cari direktori folder "www" » kemudian buat folder baru dengan nama apa saja, contoh "split-merge". Screenshot direktori seperti gambar di bawah ini:

Screenshot direktori wamp server


Untuk mulai split file, pertama tempatkan file yang ingin displit ke folder "split-merge". Untuk file yang sudah mempunyai ekstensi (mp3, wav, avi, flv, sql, exe, psd, jpeg, gif, png, dll) tidak menjadi masalah jika anda langsung menaruh pada folder "split-merge". Namun bagaimana jika anda ingin upload beberapa file berukuran besar yang berada pada satu folder. Maka cara terbaik yang harus anda lakukan adalah compress folder tersebut menggunakan Winrar, winzip atau software file compress lainnya.

Namun ingat, compress dengan dengan ekstensi file "ZIP", kemudian taruh zip file tersebut pada folder "split-merge".

Kemudian buat file php baru seperti kode di bawah ini (fungsi php split & merge).

[php]
<?php
class split_merge
{
/*Fungsi PHP yang diperlukan untuk memecah (split) file*/
function split_file($file_name,$parts_num)
{
$handle = fopen($file_name, 'rb') or die("error opening file");
$file_size = filesize($file_name);
$parts_size = floor($file_size/$parts_num);
$modulus=$file_size % $parts_num;
for($i=0;$i<$parts_num;$i++)
{
if($modulus!=0 & $i==$parts_num-1)
$parts[$i] = fread($handle,$parts_size+$modulus) or die("error reading file");
else
$parts[$i] = fread($handle,$parts_size) or die("error reading file");
}
//Akhir File Handle
fclose($handle) or die("error closing file handle");

//Perintah Split File
for($i=0;$i<$parts_num;$i++)
{
$handle = fopen('splited_'.$i, 'wb') or die("error opening file for writing");
fwrite($handle,$parts[$i]) or die("error writing splited file");
}
//Akhir file handle
fclose($handle) or die("error closing file handle");
return 'OK';
}//Akhir Fungsi split_file

/*Fungsi PHP yang diperlukan untuk menggabungkan file*/

function merge_file($merged_file_name,$parts_num)
{
$content='';
//Perintah ambil potongan file
for($i=0;$i<$parts_num;$i++)
{
$file_size = filesize('splited_'.$i);
$handle = fopen('splited_'.$i, 'rb') or die("error opening file");
$content .= fread($handle, $file_size) or die("error reading file");
}
//Perintah gabungkan file
$handle=fopen($merged_file_name, 'wb') or die("error creating/opening merged file");
fwrite($handle, $content) or die("error writing to merged file");
return 'OK';
}//Akhir merge_file
}//akhir class split_merge
?>
[/php]

Copy dan pastekan kode di atas pada text editor (notepad atau aplikasi sejenis lainnya), kemudian simpan pada direktori folder "split-merge"dengan nama "split_merge.inc.php". Buat satu lagi file php seperti kode di bawah ini (Fungsi PHP yang diperlukan untuk memecah/split file menjadi beberapa bagian/potongan):

[php]
<?php

//Fungsi PHP yang diperlukan untuk memecah (split) file
require_once('split_merge.inc.php');

//Tentukan nama file beserta nama file ekstensinya yang ingin dipecah
$file_name='video_test.zip';

//Tentukan jumlah potongan (split) file yang anda inginkan
$parts_num=8;

$w=new split_merge();

//Perintah untuk split file
$w->split_file($file_name,$parts_num) or die('Error spliting file');
echo 'File Berhasil Dipecah Menjadi Beberapa Potong File';

?>
[/php]

Copy dan pastekan kode di atas pada text editor, simpan dengan nama "split.php" pada direktori folder "split-merge". Beberapa kode di atas yang harus anda edit:

→ "$file_name='video_test.zip';" » "video_test.zip"sesuaikan dengan nama file anda diakhiri dengan nama ekstensi file.

→ "$parts_num=8;" » "8" adalah jumlah potongan file yang akan dihasilkan ketika proses split berlangsung (contoh jika anda mempunyai file berukuran 10MB dan ingin displit dengan ketentuan ukuran masing-masing file 2MB, maka angka 8 ini anda ganti dengan 5 => 10MB/2MB=5).

Jika sudah maka pada direktori "split-merge" akan berisi file antara lain split.php, split_merge.inc.php dan file yang ingin displit (contoh: video_test.zip). Screenshotnya seperti gambar di bawah ini:

Screenshot direktori folder split file ftp

Nah sampai di sini sudah bisa mulai proses split file. Sekarang jalankan aplikasi WAMP Server yang baru saja anda install. Setelah itu buka aplikasi browser anda, ketikkan "http://localhost/" atau "http://127.1.0.1/", maka akan keluar halaman seperti gambar di bawah ini:

Screenshot split file webserver ftp

Klik pada link "split-merge", maka akan keluar halaman seperti gambar di bawah ini:

Screenshot split file ftp

Klik pada link "split.php", jika berhasil maka akan keluar pesan konfirmasi seperti gambar di bawah ini:

hasil split fiile ftp

Atau biar cepat, anda bisa langsung mengetikkan alamat "http://localhost/split-merge/split.php" pada address bar web browser. Nah sekarang hapus file "video_test.zip" dan "split.php" karena sudah tidak diperlukan lagi. Buat file php baru (Fungsi PHP yang diperlukan untuk menggabungkan potongan file pada ftp) seperti kode di bawah ini:

[php]
<?php

//Fungsi PHP yang diperlukan untuk menggabungkan potongan file
require_once('split_merge.inc.php');

//Tentukan nama file yang akan digabungkan (merge)
$merged_file_name='immrg.zip';
$parts_num='8';
$w=new split_merge();

//Perintah untuk menggabungkan potongan file
$w->merge_file($merged_file_name,$parts_num) or die('Error merging files');
echo '<br>Potongan File Berhasil Digabungkan';

?>
[/php]

Copy dan pastekan kode di atas pada text editor. Edit:

→ "$merged_file_name='immrg.zip';" » "video_test.zip" ganti dengan nama terserah anda namun nama file ekstensi (.zip) tetap dipakai. Nama ini akan digunakan sebagai nama file utuh ketika potongan (split) file digabungkan.

→ Edit "$parts_num='8';" » "8" sama dengan angka sewaktu anda edit file "split.php".

Kemudian simpan file di atas dengan nama "merge.php" pada direktori "split-merge". Sekarang upload semua file (split_merge.inc.php, merge.php, splited_0...dst sampai splited_akhir) pada webserver menggunakan software ftp. Buat dahulu satu folder khusus pada root "public_html", contoh buat folder baru dengan nama "merge". Upload semua file ke direktori folder "merge".

Upload split file ke ftp webserver

Setelah terupload semua, sekarang siap untuk menggabungkan (merge) file. Jika nama direktori untuk menaruh file sama dengan yang saya contohkan di atas, pada address bar web browser ketikkan "http://www.domain-anda.com/merge/merge.php". Jika berhasil maka akan keluar halaman pesan konfirmasi sukses seperti di bawah ini.

merge split file ftp berhasil

Jika anda upload file selain ekstensi ".zip" maka sampai di sini sudah selesai, hapus semua file php dan file split karena sudah tidak diperlukan lagi. Namun jika anda upload file dengan ekstensi ".zip" sedangkan file yang diperlukan masih belum tersekstrak, maka anda dapat ekstrak file pada halaman "File Manager" yang dapat anda akses via halaman cPanel. Login ke akun cPanel anda » klik pada "File Manager", setelah itu navigasikan ke folder "merge". Klik kanan file zip yang ingin anda ekstract, kemudian klik "extract". Selesai file anda sudah terekstract.

Semoga membantu & have fun...
:D
13 Juli 2010

eBook Gratis: Dasar Pemrograman PHP dan MySQL

15 Februari 2010

base64_decode WordPress Footer

Edit base64_decode Footer WordPress



Barangkali pernah mengalami, suatu ketika ingin memodifikasi footer wordpress yang pada umumnya konten footer nggak jauh dari link designer ataupun author theme. Anda ingin merubah linknya jadi 'no follow' atau menghilangkan sama sekali link designer dan authornya kecuali link alamat wordpress anda sendiri, tapi nggak tahunya kode diproteksi dengan 'base64_decode' seperti di bawah ini

[php]
<? eval(gzinflate(str_rot13(base64_decode( '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')))); ?>
[/php]

Nah... bingung kan, tuh kode mau diapain. Jika asal hapus aja, pasti deh waktu blog dibuka ada pesan error php. Ada cara paling gampang mengakalinya. Pertama biarkan saja kode apa adanya jangan dirubah dahulu. Upload semua file theme, kemudian buka homepage blog wordpress anda. Blok semua text footer, jika anda menggunakan browser firefox, klik kanan pada bagian yang diblok tadi kemudian klik pada pilihan "View Selection Source"

Contoh hasil dari "View Selection Source" seperti di bawah ini:

[html collapse="false"]
<!– start footer –>
<span style="margin-left:10px">Copyright 2009 <a href="http://www.website-anda.com/" title="Title website anda">Website-Anda.com</a> | <a href="http://www.designer-website.com" title="Free Wordpress theme">Link Designer</a> | <a href="http://www.author-website.com/" title="About Author Website">Author Website</a></span>
[/html]

Selanjutnya tinggal edit konten footernya sesuai keinginan, misal link designer dan authornya ingin anda jadikan 'nofollow' atau dihilangkan sama sekali kecuali link blog wordpress anda sendiri: (tambahkan kode php => '<?php wp_footer(); ?>' di bawah kode html footer yang telah anda ganti)

Edit link jadi 'nofollow'

[php collapse="false"]
<!– start footer –>
<span style="margin-left:10px">Copyright 2009 <a href="http://www.website-anda.com/" title="Title website anda">Website-Anda.com</a> | <a href="http://www.designer-website.com" target="_blank" rel="nofollow" title="Free Wordpress theme">Link Designer</a> | <a href="http://www.author-website.com/" target="_blank" rel="nofollow" title="About Author Website">Author Website</a></span>
<?php wp_footer(); ?>
[/php]

Hapus link designer dan authornya kecuali link blog wordpress anda

[php collapse="false"]
<!– start footer –>
<span style="margin-left:10px">Copyright 2009 <a href="http://www.website-anda.com/" title="Title website anda">Website-Anda.com</a>
<?php wp_footer(); ?>
[/php]

Setelah itu ganti kode 'base64_decode Footer WordPress' nya dengan kode di atas. Upload file php footer ke webserver.

Selesai.
14 Februari 2010

Yang Anda Butuhkan Untuk Memulai Aplikasi PHP

Apa saja yang anda butuhkan untuk memulai menjalankan aplikasi PHP? Tidak banyak, hanya beberapa aplikasi pendukung yang dapat anda peroleh secara gratis (open source), diantaranya:

  1. Sistem Operasi. Tentu saja agar anda dapat menjalankan aplikasi PHP harus mempunyai sistem operasi. Terdapat tiga sistem operasi umum yang dapat anda gunakan antara lain Windows, Linux, Atau Mac OS. Ketiganya support semua aplikasi yang tertulis di bawah, kecuali IIS yang dapat dijalankan hanya pada sistem operasi Windows.
  2. Web Server. Seperti yang kebanyakan web developer lakukan dalam membangun suatu website pasti membutuhkan web server. Karena akan menggunakan aplikasi PHP yang selalu bekerja dengan database maka ada dua jenis aplikasi yang dapat anda pakai, antara lain 'Apache' dan 'IIS'. Apache hampir sama (similiar) seperti halnya IIS yang keduanya merupakan web server. Perbedaan utamanya adalah IIS adalah teknologi informasi server internet yang dikembangkan oleh microsoft sedangkan Apache merupakan 'Cross Platform' yang biasanya dipakai (muncul) bersamaan dengan PHP dan MySQL. Kebanyakan web developer lebih memilih menggunakan PHP dengan Apache dari pada IIS.
  3. PHP. Keduanya dapat anda download gratis di sini.
  4. MySQL. Jika anda ingin menjalankan aplikasi PHP sudah pasti anda akan membutuhkan e-database. Untuk keterangan lebih lanjut anda dapat melihat dan download di sini.
  5. PHP Text / Web Editor. Anda dapat menggunakan software web editor seperti misalnya Adobe Dreamweaver atau software lainnya yang biasa anda pakai.
  6. Tool software lainnya (PHPMyAdmin). Yang satu ini bersifat optional (tidak wajib dipenuhi). PHPMyAdmin merupakan tool yang memberikan kemudahan bagi anda untuk memanage database baik dilakukan secara lokal (edit file pada komputer) atau online melalui web browser. PHPMyAdmin dapat anda download di sini.
Jika akan menjalankan aplikasi PHP mungkin anda akan sering mendengar istilah seperti berikut ini:

  1. L.A.M.P. Merupakan singkatan dari solusi open source 'Linux, Apache, MySQL, PHP'.
  2. W.A.M.P. 'Windows, Apache, MySQL, PHP'.
  3. M.A.M.P. 'Mac, Apache, MySQL, PHP'. Dengar-dengar masih dalam tahap pengembangan (Beta/Belum Final).
  4. X.A.M.P. 'Sistem operasi selain ketiga sistem operasi di atas, Apache, MySQL, PHP'.
Semuanya terserah anda, gunakan sesuai dengan platform sistem operasi anda. Daripada anda download satu persatu aplikasi yang dibutuhkan seperti diatas, jika anda masih baru dalam PHP disarankan untuk download per paket seperti yang tertulis dalam singkatan (acronim) di atas (WAMP, LAMP, MAMP atau XAMP). Karena jika menginstal satu persatu aplikasi lebih susah dan butuh pemahaman yang mendalam tentang proses instalasi dan dokumentasi file.

Jika anda menggunakan sistem operasi Windows disarankan memakai WAMP yang dapat anda download di sini. Untuk Mac, linux, dan sistem operasi lainnya disarankan memakai XAMP yang dapat anda download di sini. Sebelum memutuskan untuk menginstall aplikasi seperti yang diperlukan di atas ada baiknya anda konsultasikan dahulu dengan provider server tempat anda sewa.

Jika anda memutuskan ingin install web server pada local PC (Windows misalnya), download aplikasi WAMP beserta addons-nya, instal, pilih default browser, selesai. Install addon pada direktori yang sama dengan direktori sewaktu anda menginstal wamp.

PHP (PHP Hypertext Preprocessor) Overview

PHP merupakan script language (bahasa) yang digunakan oleh web developer untuk membuat halaman web dinamic yang berinteraksi dengan database dan biasanya digunakan antara lain untuk pembuatan sistem web mail, form, atau untuk situs e-commerce. PHP bisa juga digunakan untuk memanage cookies, otentikasi user (pengguna), memanipulasi XML, atau redirect (mengarahkan) user ke halaman web lain.

PHP Acronym

P = PHP: → PHP pada akronim huruf pertama hanyalah gurauan dari para programmer pembuatnya, dengan kata lain 'hanya untuk iseng saja'.

H = Hypertext → Markup language.

P = Preprocessor → Proses sebelum proses. Disebut demikian karena PHP memproses kode sebelum dikirim ke browser client.

Lebih jelasnya, kunjungi situs resminya di sini.

PHP gratis (free / open source), anda dapat download php di sini.
Loncat ke Atas ↑