PHP Function Friday: date

I think the date function is extremely useful.  It gives your programs an awareness of WHEN they are.  You can do some pretty cool things like calculate this date from that date, make a calendar, or store information about when an action was taken.

Function and Syntax

string date(string $format  [, int $timestamp  ])

Manual Entry

http://php.net/manual/en/function.date.php

Notes and Use

There are two variables you can pass to the date function: the string format, and the timestamp.  What are those?  The string format uses various characters to define how the string the function returns will be formatted.  The table for which characters mean what is on the PHP Manual Page.  The timestamp is a Unix timestamp for a specific date/time.

Other Functions Referenced in Examples

Examples

Output Today’s Date and Time

This should just simply output today’s date.  I did a few formats based on January 1, 2009 at 4:52:39 PM.

echo date("Y-m-d H:i:s"); /* Should output '2009-01-01 16:52:39'.  Common programming format*/
echo date("F n, Y at g:m:s A") /* Should output 'January 1, 2009 at 4:52:39 PM'.*/

Put a Message on Your Website Every Monday

Do you hate Mondays?  Let everyone know.  This script checks to see if it’s Monday and then outputs a message if it is.  That ‘w’ in the date function is a numeric representation of the day of the week.  For instance: Wednesday is 3 and Sunday is 0.

if(date("w") == 1) {
   echo "Ugh.  It's Monday."
}

Examples Elsewhere on this Site:

Holiday Notices

Conclusion

Date functions are extremely useful when trying to figure out when you are (or better stated: when your program tries to figure out when it is).  Using date and time functions allow you to create a lot of automation in your scripts.  Have you got any useful implementations on this function?

PHP Function Friday: include

Including files makes it really easy to NOT duplicate code. It’s great for creating headers and footers for websites, or using it in the inverse: make the header and footer in one file, and include the content.  You can also store site configuration files, functions, and repeating content, etc.

Function and Syntax

include(<file path>);

Manual Entry

http://php.net/manual/en/function.include.php

Notes and Use

Includes are a great way to include the same code to many different PHP files.  I find this the most useful for storing variables and functions across an entire website.  The other great way to use this function is to include repetitive code that needs to be outside of a function scope – for example: including form layouts across multiple pages.  I like to use the same include for both my add and edit pages on a form sometimes.

Examples

Storing Site-Wide Variables

This is stored in the file ‘configuration.php’:

$blog_name = "jtGraphic.net";
$blog_description = "Ramblings of an Internet Addict";

This is another PHP file where you’re calling the include – call it whatever you want.  I’ll call mine ‘main.php’:

include("configuration.php");
echo $blog_name."<br />";
echo $blog_description;

This is another PHP file somewhere else on the site – maybe inside the /content/ directory.  Call it whatever you want.  I’ll call mine ‘content.php’:

include("../configuration.php");
echo $blog_name."<br />";
echo $blog_description;

Both ‘main.php’ and ‘content.php’ will echo out the same information because you included the same file at the beginning of each.

Website Header and Footer

I find that another extremely powerful use of includes is to build your header and footer for your website.  In this example, we’re going to dynamically set the title variable in the main content page and call it inside the include.  This is how I build some of my simpler sites.  By the way, this isn’t HTML standards compliant.  It’s just an example.

We’ll call this file ‘header.php’

<html>
   <head>
      <title>jtGraphic.net <?php echo $page_title; ?></title>
   </head>
   <body>
/*snip*/

We’ll call this next file ‘footer.php’;

//snip
      <div> &copy; James Thompson and jtGraphic.net </div>
   <body>
</html>

Now that we have our header and footer, we can make some more pages:

We’ll call this one ‘content_1.php’:

$page_title = "Some Title";
include("header.php");
//content here
include("footer.php");

We’ll call the next one ‘content_2.php’:

$page_title = "Some Other Title";
include("header.php");
//content here
include("footer.php");

When accessing ‘content_1.php’ and ‘content_2.php’ you should get everything you put in ‘header.php’ and ‘footer.php’, but the title should be what you defined in the content files.  This is a really rudimentary example, but it is VERY useful.

Conclusion

So, remember: whenever you have a set of code that is duplicated you can probably deal with it through custom functions or includes.  Don’t duplicate the code!  If you have your own examples, feel free to link them up below!

PHP Function Friday: function

So, I’ve decided to start including a new post every Friday – kind of as a discipline thing. I’m going to write a post on a PHP function every Friday. I’m not just going to regurgitate the post in the official PHP manual, but I’m going to list my experience with it along with some creative ways to use it.

With out any further adieu, I’m posting on the first official building block (which isn’t technically a function, but I digress) ‘function’:

PHP Function and Syntax

function <function name>(<parameters>) {
   /*add code here*/
}

PHP Manual Entry

Check here for version information, or anything I may have missed:

http://www.php.net/manual/en/functions.user-defined.php

Notes and Use

This is great for building blocks of code that you repeat a lot.  I like to use it when duplicating XML/HTML code, such as links or form elements, which I will outline below.  Functions, both custom and built in, are the primary building blocks of a good program.  Everything else is just procedural.

Also, on a side note: PHP Coding Standards is a good read if you’re really geeky.

An important thing to keep in mind about making custom functions is that someone has probably already made it if it doesn’t already exist in the built in functions for PHP.  Feel free to jump online and see if someone has already made a function to do what you’re trying to do.  I like to use the site HotScripts.com, which has both free and commercial PHP scripts available.  Chances are: if I need it, they have it.  It saves me a ton of time.

Note in the examples that I precede the function with some explanation of what it does, the author, etc.  This isn’t needed, but it’s a REALLY good habit.

Other Functions Referenced in Examples

Examples

Here’s the meat.  Let’s make some stuff work.

Creating Image Links

/*
 *  Author: James Thompson, jtGraphic.net
 *
 *  Description
 *  ------------------------------------
 *  This function is for displaying image links in HTML.  It's less typing,
 *  and easier to remember what needs to be slashed out.  An image
 *  with the same name as the file name of the page you're linking to needs to
 *  be placed on the server in the same path as the internal variable
 *  '$image_path' and the same extension as '$image_ext'.
 *
 *  Arguments
 *  ------------------------------------
 *  $url - URL of the link
 *  $extra_tag_html - this is any extra HTML, like class, id, or style
 *
 */

/* Build the function. */

	function create_html_link($name, $extra_tag_html) {
		/* Define internal variables. */
			$image_path = "images/";
			$image_ext   = ".jpg";

		/* Output the HTML. */
			echo
				"<a href="".$name.".php" ".$extra_tag_html.">
					<img src="".$image_path.$name.$image_ext."" />
				</a>";
	}

/* Execute the function. */

	create_html_link("home", "class="normal_link"");
	create_html_link("about", "class="normal_link"");
	create_html_link("contact", "class="normal_link"");

Calculate the Number of Days Since Some other Date

/*
 *  Author: James Thompson, jtGraphic.net
 *
 *  Description
 *  ------------------------------------
 *  Simple.  This calculates the number of days since X date.
 *
 *  Arguments
 *  ------------------------------------
 *  $date - the date in this format: 'YYYY-MM-DD HH:MM:SS'
 *
 */

/* Build the function. */

	function num_days_since($date) {
		/* Do some time math. */
			$date = strtotime($date);
			$now = time();
			$difference = $now - $date;
			$days = $difference / 86400;

		/* Output the Value. */
			return $days;
	}

/* Execute the function. */

	/* Should return 0 */
		echo num_days_since(date("Y-m-d H:i:s"));
	/* Someone's birthday at 6:02:55AM on Oct 23, 1974 */
		echo num_days_since("1974-10-23 06:02:55");
	/* Since Jan 1, 2009 - no need for time */
		echo num_days_since("2009-01-01");

Examples Elsewhere on this Site:

Holiday Notices

Conclusion

So that’s the basics.  Functions can be very powerful in reducing the code on your websites.  If you’d like to see some more custom functions, check out my Tidbit Tuesdays on PHP If you have questions, let me know in the comments.