Archive for the ‘PHP’ Category

Array_diff_uassoc Function

Wednesday, December 2nd, 2009

Next in line is array_diff_uassoc() function which compares two or more arrays while checking for differences before comparing the keys with a user-defined location. It then returns an array withthe keys and values from the first array(to which all the values were comapred against) it the function allows it. Syntax is as follows : array_diff_uassoc(array1,array2,array3….,function). with a sample below of how it is used.

function userdefined($v1,$v2)
{
if ($v1 === $v2)
{
return 0;
}
if ($v1 > $v2)
{
return 1;
}
else
{
return -1;
}
}
$a1=array(0=>”Dog”,1=>”Cat”,2=>”Horse”)
$a2=array(3=>”Dog”,1=>”Cat”,5=>”Horse”)
print_r(array_diff_uassoc($a1,$a2,”userdefined”));
?>

which results in the following output : Array( [0] => Dog [2] => Horse). For an example of the same function with two or more assigned arrays to the function:

function userdefined($v1,$v2)
{
if ($v1 === $v2)
{
return 0;
}
if ($v1 > $v2)
{
return 1;
}
else
{
return -1;
}
}
$a1=array(0=>”Dog”,1=>”Cat”,2=>”Horse”)
$a2=array(3=>”Dog”,1=>”Cat”,5=>”Horse”)
$a3=array(6=>”Onyx”,0=>”Dog”,5=>”Horse”)
print_r(array_diff_uassoc($a1,$a2,$a3,”userdefined”));
?>

Which in turn, gives you : Array ([2] => Horse )

So we see the different array_diff function variants and the diffeerent ways they are used to compare the values of one or more arrays with one another.

PHP Programming 101

Code refactoring

Friday, November 6th, 2009

9117.jpg

Refactoring, in software engineering mostly means modifying a source code without changing its external behavior. It is also referred to us “cleaning up.” With a refactoring functionality, one can sculpt the code to improve legibility or change its internal structure and design. It is also useful in maintainability for it removes dead codes. But refactoring is not that accepted because its long term effects has not been fully studied yet. It has difficulties as well regarding interface. PHP developers should implement refactoring’s facility and capabilities. Because of refactoring together with other tools, it has resulted in PHP trying to catch up with other languages that emphasize on scalability regarding Web application.

Easy PHP Programming

Iono and PHP

Friday, November 6th, 2009

iono_home.jpg

PHP’s use is not limited to the programming language for open source or custom written application. Don’t you know that PHP is also constructive for commercial application distribution? But there’s a little disadvantage to PHP’s interpreted language because it implies that the source code you wrote is open for others’ view. But there is of course a technique called Obfuscation to not allow others see the code you have written. Iono and PHP Encoder (by IonCube) is an application used to obfuscate and license the code you wrote. Iono serves as a front end to your licensing and PHP Encoder secures the codes. In this way, you can still keep the codes for yourself.

Easy PHP Programming

Marketing Your Skills as a Freelance Programmer

Friday, November 6th, 2009

The popularity of PHP as a solution for websites with dynamic contents has created a huge market for people skilled enough in writing complex applications in PHP, covering a wide range of solutions. If you think you’ve got enough experience under your belt, you’ve probably already considered the idea at least once. However, simply knowing how to write good PHP scripts won’t be enough to make it as a successful freelance programmer. This post is a bit more abstract as it doesn’t cover programming specifically, but more general ideas that can help you get a better exposure for your skillset.

First, consider your weak points – this is crucial when aiming to be a successful freelancer. With a highly competitive market like the one we have, you simply can’t afford to lack in any qualification when it comes to writing PHP scripts. If your knowledge of database interaction is weak, you’d better grab a book on databases and dig in for the next few weeks – otherwise, that other guy who doesn’t write scripts quite as well as you, but knows MySQL by heart will keep getting the good jobs and you’ll keep treading in the same place.

Also, figure out what exactly you want to offer as a service – the applications of PHP are quite varied and this allows you to specialize in a particular type of design. Figure out what you do best and market yourself to that crowd – it’s always better to offer the type of service you’re best at (something which really shouldn’t even need mentioning, but somehow keeps getting ignored by many people).

PHP Programming 101

To Create Dynamic Pages Choose An Advance Programming Language Like PHP

Friday, November 6th, 2009



PHP is an open sourced server side scripting language and almost used in foremost operating systems like Linux, UNIX and also in Windows. PHP follows object oriented programming (OOPs), practical programming rules and nearly a combination of them. It uses command line interface, desktop applications thus it is know as the best traditional server side scripting language.

PHP programming supports most of the reputed database connections like Oracle, SQL, My SQL, and ODBC thus it is an easy choice for freelance programmers to build their dynamic pages with the help of PHP development. The latest version is also popular because it can be embedded HTML coding directly and can be carried by nearly all of the web servers.

PHP is a popular language because of its numerous features infused specifically to design websites or you can say to develop dynamic pages. PHP engine and the PHP coding can be used in every platform that increases flexibility of PHP language. Basically PHP is profitable for both programmers and designers, programmers who realizing its flexibility and tempo and web designers who worth its handiness and user-friendliness.

PHP language can develop giant business services like CRM solutions, community sites, chatting forums and E-Commerce shopping cart as well. Several pools of qualified web programmers are using PHP development for organizing their goal, resource planning and fulfilling their client requirements.

Here are a few things which you can perform with PHP:

Design HTML web forms. Superb Database usability to store records. Calculate visitors by sessions and cookies. You can use arrays as well. Play with files through file management system. Creating XML for large number of product list on E-Commerce
Serialization

Serialization is not needed for all kind of databases. In some particular databases like ODBC, MS SQL etc when you wish to pass a value without mentioning its type, it gets dumb. This problem is solved properly in the latest version of PHP. This is also an added advantage of PHP over all king of scripting languages.

Using PHP to improve design on your website

PHP has many capabilities features designed specifically for use in Web sites, including the following:

1. Securing Your Website: PHP is designed to allow user level access to the file system, it’s entirely possible to write a PHP script that will allow you to read system files such as password, modify your Ethernet connections, etc. thus this can provide a customer with an exclusive membership in the business.

2. Working with Web Forms: HTML form can be displayed by PHP and it is the best way to know more about the requirements of your customers and to gather note about their detailed benefits.

3. Communicate with Your Databases: When a persistent connection is requested, PHP checks if there is already an identical persistent connection and if it exists, it uses it. If it does not exist, it creates the link.

4. Customer Loyalty Functions: PHP allows content and applications to be generated and run server-side. This is highly advantageous to web users as they do not have to rely on their own system resources to generate or run content on their own systems. This allows for faster delivery of applications to the user and reduces errors and problems due to browser incompatibilities.

Easy PHP Programming

How to Export Data From MySql to CSV

Friday, November 6th, 2009

This is a simple code that exports mysql database data to csv (delimated) data.

//a small class for database connectivity
class database {
private $db_handle;
private $user_name;
private $password;
private $data_base;
private $host_name;
private $sql;
private $results;
function __construct($host = “localhost”, $user, $passwd) {
$this->db_handle = mysql_connect($host, $user, $passwd);
}
function dbSelect($db) {
$this->data_base = $db;
if (!mysql_select_db($this->data_base, $this->db_handle)) {
error_log(mysql_error(), 3, “/phplog.err”);
die(”Error connecting to Database”);
}
}
function executeSql($sql_stmt) {
$this->sql = $sql_stmt;
$this->result = mysql_query($this->sql);
}
function returnResults() {
return $this->result;
}
}
//database variables
$host = “localhost”;
$user = “root”;
$passwd = “”;
$db = “bg_db”;
$sql = “SELECT * FROM table ORDER BY id”; // a query to fetch records from database
$dbObject = new database($host, $user, $passwd);
$dbObject->dbSelect($db);
$dbObject->executeSql($sql);
$res = $dbObject->returnResults(); // result reasource
$newFileName = “emp_names.csv”; //file name that you want to create
$fpWrite = fopen($newFileName, “w”); // open file as writable
$nameStr = “”;
$rows = mysql_fetch_assoc($res); // fetching associate records
$sStr = “”;
//first store the fields name as header of csv in $sStr
foreach($rows as $key=>$val) {
$sStr .= $key.”,”;
}
//then store all records
do {
$sStr .= “– —–\n”; //to seprate every record
foreach($rows as $key=>$row) {
$sStr .= $row.”,”;
}
}while($rows = mysql_fetch_assoc($res));
$sStrExp = explode(”– —–”, $sStr);//separate every record
foreach($sStrExp as $val) {
$sStr2 .= rtrim($val, “,”);
}
echo $sStr2;
fwrite($fpWrite, $sStr2); //now write to csv file
fclose($fpWrite);//close file
?>

PHP Programming 101

Random Numbers

Friday, November 6th, 2009


int rand ( [int min, int max])
int mt_rand ( [int min, int max])
int getrandmax ( )
int mt_getrandmax ( )
void srand ( [int seed])
void mt_srand ( [int seed])

Sometimes you want to take random actions in your code – it might be to give your web site visitors a different greeting each time they visit, you might be programming a game, or you might be trying to secure data by hashing it. Either way, randomisation is simple and helpful thing to remember, and has just two functions: rand(), and mt_rand().

Both functions do the same thing, and both take the same parameters, so what is the difference between the two? Well, rand() is a basic randomisation function that is very quick but not very “random” – the numbers it generates are slightly more predictable. Mt_rand() on the other hand, is more complicated – the “mt” parts means Mersenne Twister, as that is the name of the randomisation algorithm it uses. Mt_rand() returns much more “random” numbers, but does so at the expense of some speed.

As mentioned, both functions have the same parameters – two optional numbers, for the minimum number to return and the maximum number to return. Either you supply no parameters, which will result in PHP returning a random number between one and a very high number, or you can supply the two parameters. Here is an example:

$random = rand();
$randrange = rand(1,10);
$mtrandrange = mt_rand(1,100);
?>

Note that the two numbers passed in are inclusive. That is, our $randrange number could be anywhere between 1 and 10 including 1 and 10.

As mentioned, if you do not pass any parameters to your rand() and mt_rand() calls, PHP will generate a random number from 1 to a high number. If you want to find out the maximum number PHP can return from a rand() call, use getrandmax(). There is a similar function, mt_getrandmax() for mt_rand().

Now you know how randomisation works, here is a quick example to show you how you can make use of randomisation to greet web site visitors in various ways:


switch(rand(1,6)) {
case 1:
$greet = 'Hello!'; break;
case 2:
$greet = 'Welcome!'; break;
case 3:
$greet = 'Greetings!'; break;
case 4:
$greet = 'Salutations!'; break;
case 5:
$greet = 'Good day!'; break;
case 6:
$greet = 'Yo!'; break;
}

print $greet;
?>

Here we have not bothered assigning the result of rand() to a variable before putting it into the switch statement, but you can do it whichever way is easier for you to read.

One important thing to note is that the speed of randomisation does not depend on the sizes you pass into it – rand() is just as fast in rand(1,3) as it is in rand(1, 10000000). Mt_rand() works just short of 50% slower than rand(), which means you should only be using it if you particularly need the extra randomisation it brings.

To give you an idea of how fast the two run and how using larger values for randomisation makes no difference, try this script:


$START = time();
for ($i = 1; $i < 1000000; ++$i) {
$j = rand(1,100);
}
$END = time() - $START;
print "Short rand() took $END seconds\n";

$START = time();
for ($i = 1; $i < 1000000; ++$i) {
$j = mt_rand(1,100);
}
$END = time() - $START;
print "Short mt_rand() took $END seconds\n";

$START = time();
for ($i = 1; $i < 1000000; ++$i) {
$j = rand(1,10000000);
}
$END = time() - $START;
print "Long rand() took $END seconds\n";

$START = time();
for ($i = 1; $i < 1000000; ++$i) {
$j = mt_rand(1,10000000);
}
$END = time() - $START;
print "Long mt_rand() took $END seconds\n";
?>

Most random number generators require “seeding” – initialising with a starting value – because the numbers they generate are not truly random. Instead, they are known as pseudo-random, meaning that they appear to be random. The seed value is used to generate the first number, the first number is used to generate the second number, the second for the third, etc, meaning that if you always supply the same seed value you will always get the same string of “random” numbers. This is actually advantageous. Many years ago there was a popular game called Elite available on the BBC Micro, where the player was allowed to fly around a large universe of eight galaxies, each with thousands of star systems. Each star system had a very precise number of planets, a distinct economy situation, etc, and yet the entire universe fit into just 22K of memory. How was this possible? Simple: by providing the same seed to their random number generator, the exact same universe could be generated each time.

Of course, this is a fairly rare situation. More often than not you will want numbers that look random as opposed to numbers that are always the same, and this is where random seeding comes in. If you provide a random number to the random number generator as its seed, you will have a new and original string of random numbers coming out. Does this sound like a chicken and egg situation to you? That is, how do we get the random number to provide to the random number generator? Well, think of what randomness – usually called entropy – you can draw upon in your scripts.

  • The number of files in your temp directory?
  • The number of rows in your database?
  • The time your script was called?

Of all three of these, the latter is potentially the most random – you do not control when your script is called, and you are certainly never likely to have the same script called in the exact same microsecond, so you could use the return value from microtime() as your initial random seed.

The seed function for rand() is srand(), and it takes one parameter – an integer to use as the seed value. If you are using mt_rand(), you should use mt_srand() for seeding. If you recall from earlier, microtime() returns a floating-point number – this is no good for use as the parameter to srand() (or mt_srand() – it is exactly the same), so you need to make it into an integer before use.

Now, as we know that microtime() returns the time in millionths of a second, we can convert its return value to an integer by multiplying it by a million, like this:

srand((double)microtime()*1000000);

The code above should seed the standard random number generator fairly well. You can do the same for the Mersenne Twister generator with this code:

mt_srand((double)microtime()*1000000 );

If you want your random number to always generate the same string of numbers, simply supply a seed that is a known value. For example, no matter how often you run it, this next script will always generate the same “random” numbers:


mt_srand(123456);
echo mt_rand(1, 100), "\n";
echo mt_rand(1, 100), "\n";
echo mt_rand(1, 100), "\n";
?>

The last option is just to call srand()/mt_srand() without any parameters at all. In this situation, PHP will attempt to generate a random seed for you – not much good if you want reliably random numbers or if you have a particularly good source of entropy for your seed value, but generally good enough for most people.

As of PHP 4.2.0, there is no need to seed the random number generator with srand() or mt_srand() as this is done automatically.

Source

PHP Programming 101

Array Count Values

Friday, November 6th, 2009

The array_count_values() function returns an array which contains the keys of the original array’s value and the value is the number of occurences. A sample of it’s use is shown below:

$a=array(“Mouse”,”Cat”,”Dog”,”Cat”);
print_r(array_count_values($a));
?>

Which would give us an output of : Array ( [Mouse]=> 1 [Cat]=> 2 [Dog]=> 1 )

The next functions are used to compare the contents of one array against one or more arrays either returning the key, keys and contents or solely the contents of the specified fields that result from their comparisons. They are array_diff(), array_diff_assoc(), array_diff_key(), array_diff_uassoc() and array_diff_ukey(). all of these are used to determine the difference between a set of arrays returning either the keys or contents to give the results of the said array comparison/s.

Easy PHP Programming

Array_diff Function

Friday, November 6th, 2009

The first function, array_diff() is used for comparing several tables or arrays which gives an array with the keys and values from the first array if the value is not available in the other arrays. Syntax is as follows : array_diff(array1,array2,array3……), where array 1 is the table to which all the other arrays will be compared to. The 2nd array(array 2) is an array that is compared with the first array and so on and so forth. Below is sample code of its use and the outcome of the functions comparison :

$a1=array(0=>“Mouse”,1=>”Cat”,2=>”Dog”);
$a2=array(3=>”Dog”,4=>”Cat”,5=>”Lizard”);
print_r(array_diff($a1,$a2));
?>

Giving you the result : Array( [0] =>Mouse )

Easy PHP Programming

Array Chunk Function

Friday, November 6th, 2009

The array_chunk() function on the on the other hand as the name implies, divides an array into chunks or several tables from the source table. The syntax goes something like array_chunk(array,size,preserve_key), wherein the array is the table that would be divided, the size is the number of elements which the new arrays are to contain and the preserve key which can either be true or false is used to either retain or revise the key or pointer value of the original table. An example is shown below:

$a=array(�a�=>�Cat�, �b�=>�Dog�, �c�=>�Horse�,�d�=>�Cow�);
print_r(array_chunk($a,2);
?>

The code would have an output of:

Array (
[0] => Array ( [0] = > Cat [1] => Dog )
[1] => Array ( [0] => Horse [1] => Cow )
)

As we can see, the original array has been divided into two arrays array0 and array1 and a value that is not given for the key had it assigned a new key for each of the tables. Another example would be :

$a=array(�a�=>�Cat�, �b�=>�Dog�, �c�=>�Horse�,�d�=>�Cow�);
print_r(array_chunk($a,2,true);
?>

This would then give us ;
Array (
[0] => Array ( [a] = > Cat [b] => Dog )
[1] => Array ( [c] => Horse [d] => Cow )
)

This shows the significance of the retain key field wherein the two new arrays retained their original keys. The reverse of which would be the array_combine() which divided the array into one which holds the keys and one with the values.

PHP Programming 101