PHP Fatal error: Call to undefined function utf8_decode()

This occurs on a FreeBSD server. According to this post[1], I need to install php5-xmlphp5-xml.

# whereis php5-xmlphp5-xml
php5-xml: /usr/ports/textproc/php5-xml
# portmaster textproc/php5-xml
# service apache22 restart



FreeBSD: Fatal error: Call to undefined function session_name()

I just setup Apache and PHP on FreeBSD 9, configured a vhost, then when I tried to access it, I got the following error:

Fatal error: Call to undefined function session_name() in /srv/www/ on line 144

so apparently, the “session” support is missiong from php5 installation. To fix it, I need to install php5-session port.

Let’s do it.

# whereis php5-session
php5-session: /usr/ports/www/php5-session
portmaster www/php5-session

If the installation is successful, then we can restart apache.

# service apache22 restart


# /usr/local/etc/rc.d/apache22 restart

That’s it.


PHP: number of days between two dates

It’s Saturday, what am I doing in front of the computer? I should be out and enjoy life. ^o^

A colleague asked to customize a theme for his blog using WordPress. Because I didn’t have any good plan this Saturday, learning PHP sound like a logical and useful choice. Well, I bribed myself with a bottle of Tui.

Then, I found an interesting PHP related post by Chorn Sokun entitled “PHP date diff“. The author was trying to calculate the number days between two give dates. At the end of the post, he asked “What would you do instead?”

Here is my answer.

< ?php
 * Function to calculate the number of days between
 * two given dates.
 * Assumption:
 *              $date2 > $date1
 *              Date format: mm/dd/yyyy e.g.: 31/07/2009
 * Author: kenno
 * Date: July 4, 2009
function number_of_days($date1, $date2) {
$date1Array = explode('/', $date1);
$date1Epoch = mktime(0, 0, 0, $date1Array[1],
$date1Array[0], $date1Array[2]);

$date2Array = explode('/', $date2);
$date2Epoch = mktime(0, 0, 0, $date2Array[1],
$date2Array[0], $date2Array[2]);

$date_diff = $date2Epoch - $date1Epoch;
return round($date_diff / 60 / 60 / 24);

echo number_of_days("04/7/2009", "12/7/2009"); // 8

Now, it’s my turn to ask. How could I make it better? How would you do it? 🙂


Added the abs( ) to round up the number of days to integer as suggested by Sokun.
Added round( ) to round up the number of days on line 21. I confused round( ) with abs( ).