- array_change_key_case — Changes all keys in an array
- array_chunk — Split an array into chunks
- array_combine — Creates an array by using one array for keys and another for its values
- array_count_values — Counts all the values of an array
- array_diff_assoc — Computes the difference of arrays with additional index check
- array_diff_key — Computes the difference of arrays using keys for comparison
- array_diff_uassoc — Computes the difference of arrays with additional index check which is performed by a user supplied callback function
- array_diff_ukey — Computes the difference of arrays using a callback function on the keys for comparison
- array_diff — Computes the difference of arrays
- array_fill_keys — Fill an array with values, specifying keys
- array_fill — Fill an array with values
- array_filter — Filters elements of an array using a callback function
- array_flip — Exchanges all keys with their associated values in an array
- array_intersect_assoc — Computes the intersection of arrays with additional index check
- array_intersect_key — Computes the intersection of arrays using keys for comparison
- array_intersect_uassoc — Computes the intersection of arrays with additional index check, compares indexes by a callback function
- array_intersect_ukey — Computes the intersection of arrays using a callback function on the keys for comparison
- array_intersect — Computes the intersection of arrays
- array_key_exists — Checks if the given key or index exists in the array
- array_keys — Return all the keys or a subset of the keys of an array
- array_map — Applies the callback to the elements of the given arrays
- array_merge_recursive — Merge two or more arrays recursively
- array_merge — Merge one or more arrays
- array_multisort — Sort multiple or multi-dimensional arrays
- array_pad — Pad array to the specified length with a value
- array_pop — Pop the element off the end of array
- array_product — Calculate the product of values in an array
- array_push — Push one or more elements onto the end of array
- array_rand — Pick one or more random entries out of an array
- array_reduce — Iteratively reduce the array to a single value using a callback function
- array_replace_recursive — Replaces elements from passed arrays into the first array recursively
- array_replace — Replaces elements from passed arrays into the first array
- array_reverse — Return an array with elements in reverse order
- array_search — Searches the array for a given value and returns the corresponding key if successful
- array_shift — Shift an element off the beginning of array
- array_slice — Extract a slice of the array
- array_splice — Remove a portion of the array and replace it with something else
- array_sum — Calculate the sum of values in an array
- array_udiff_assoc — Computes the difference of arrays with additional index check, compares data by a callback function
- array_udiff_uassoc — Computes the difference of arrays with additional index check, compares data and indexes by a callback function
- array_udiff — Computes the difference of arrays by using a callback function for data comparison
- array_uintersect_assoc — Computes the intersection of arrays with additional index check, compares data by a callback function
- array_uintersect_uassoc — Computes the intersection of arrays with additional index check, compares data and indexes by a callback functions
- array_uintersect — Computes the intersection of arrays, compares data by a callback function
- array_unique — Removes duplicate values from an array
- array_unshift — Prepend one or more elements to the beginning of an array
- array_values — Return all the values of an array
- array_walk_recursive — Apply a user function recursively to every member of an array
- array_walk — Apply a user function to every member of an array
- array — Create an array
- arsort — Sort an array in reverse order and maintain index association
- asort — Sort an array and maintain index association
- compact — Create array containing variables and their values
- count — Count all elements in an array, or something in an object
- current — Return the current element in an array
- each — Return the current key and value pair from an array and advance the array cursor
- end — Set the internal pointer of an array to its last element
- extract — Import variables into the current symbol table from an array
- in_array — Checks if a value exists in an array
- key — Fetch a key from an array
- krsort — Sort an array by key in reverse order
- ksort — Sort an array by key
- list — Assign variables as if they were an array
- natcasesort — Sort an array using a case insensitive "natural order" algorithm
- natsort — Sort an array using a "natural order" algorithm
- next — Advance the internal array pointer of an array
- pos — Alias of current
- prev — Rewind the internal array pointer
- range — Create an array containing a range of elements
- reset — Set the internal pointer of an array to its first element
- rsort — Sort an array in reverse order
- shuffle — Shuffle an array
- sizeof — Alias of count
- sort — Sort an array
- uasort — Sort an array with a user-defined comparison function and maintain index association
- uksort — Sort an array by keys using a user-defined comparison function
- usort — Sort an array by values using a user-defined comparison function
PHP Array Functions
PMA23:14
Substrings PHP
PMA04:41
If you know where in a larger string the interesting data lies, you can copy it out with
the substr( ) function:
$piece = substr(string, start [, length ]);
The start argument is the position in string at which to begin copying, with 0
meaning the start of the string. The length argument is the number of characters to
copy (the default is to copy until the end of the string).
For example:
$name = "Fred Flintstone";
$fluff = substr($name, 6, 4); // $fluff is "lint"
$sound = substr($name, 11); // $sound is "tone"
To learn how many times a smaller string occurs in a larger one, use substr_count( ):
$number = substr_count(big_string, small_string);
the substr( ) function:
$piece = substr(string, start [, length ]);
The start argument is the position in string at which to begin copying, with 0
meaning the start of the string. The length argument is the number of characters to
copy (the default is to copy until the end of the string).
For example:
$name = "Fred Flintstone";
$fluff = substr($name, 6, 4); // $fluff is "lint"
$sound = substr($name, 11); // $sound is "tone"
To learn how many times a smaller string occurs in a larger one, use substr_count( ):
$number = substr_count(big_string, small_string);
Cleaning Strings
PMA04:39
Often, the strings we get from files or users need to be cleaned up before we can use
them. Two common problems with raw data are the presence of extraneous
whitespace, and incorrect capitalization (uppercase versus lowercase).
Removing Whitespace
You can remove leading or trailing whitespace with the trim( ), ltrim( ), and rtrim( )
functions:
$trimmed = trim(string [, charlist ]);
$trimmed = ltrim(string [, charlist ]);
$trimmed = rtrim(string [, charlist ]);
trim( ) returns a copy of string with whitespace removed from the beginning and
the end. ltrim( ) (the l is for left) does the same, but removes whitespace only from
the start of the string. rtrim( ) (the r is for right) removes whitespace only from the
end of the string. The optional charlist argument is a string that specifies all the
characters to strip.
For example:
$title = " Programming PHP \n";
$str_1 = ltrim($title); // $str_1 is "Programming PHP \n"
$str_2 = rtrim($title); // $str_2 is " Programming PHP"
$str_3 = trim($title); // $str_3 is "Programming PHP"
them. Two common problems with raw data are the presence of extraneous
whitespace, and incorrect capitalization (uppercase versus lowercase).
Removing Whitespace
You can remove leading or trailing whitespace with the trim( ), ltrim( ), and rtrim( )
functions:
$trimmed = trim(string [, charlist ]);
$trimmed = ltrim(string [, charlist ]);
$trimmed = rtrim(string [, charlist ]);
trim( ) returns a copy of string with whitespace removed from the beginning and
the end. ltrim( ) (the l is for left) does the same, but removes whitespace only from
the start of the string. rtrim( ) (the r is for right) removes whitespace only from the
end of the string. The optional charlist argument is a string that specifies all the
characters to strip.
For example:
$title = " Programming PHP \n";
$str_1 = ltrim($title); // $str_1 is "Programming PHP \n"
$str_2 = rtrim($title); // $str_2 is " Programming PHP"
$str_3 = trim($title); // $str_3 is "Programming PHP"
PHP Variable names
PMA04:29
Variable names always begin with a dollar sign ($) and are case-sensitive. Here are
some valid variable names:
$pill
$ad_count
$dForce
$I_kk_PHP
$_underscore
$_int
Here are some illegal variable names:
$not valid
$|
$3ka
These variables are all different:
$hot_stuff $Hot_stuff $hot_Stuff $HOT_STUFF
some valid variable names:
$pill
$ad_count
$dForce
$I_kk_PHP
$_underscore
$_int
Here are some illegal variable names:
$not valid
$|
$3ka
These variables are all different:
$hot_stuff $Hot_stuff $hot_Stuff $HOT_STUFF
CREATING THE DATABASE
PMA04:21
To create a database, connect to MySQL and run the CREATE DATABASE command. This is the
MySQL command to create a database called mydatabase:
CREATE DATABASE ’mydatabase’;
<?php
define(“MYSQLUSER”, “root”);
define(“MYSQLPASS”, “p##V89Te5t”);
define(“HOSTNAME”, “localhost”);
if ($connection = new mysqli(HOSTNAME, MYSQLUSER, MYSQLPASS)) {
echo ‘Successful connection to MySQL <br />’;
if ($result = $connection->query(“CREATE DATABASE ’mydatabase’”)) {
$connection->select_db(‘mydatabase’); // use the database
echo “Database created”;
} else {
echo “Problem creating the database. Is the user not allowed
to create database or does the database already exist?”; }
}
?>
Note that the preceding code uses an equal sign in the if statement:
if ($result = $connection->query(“CREATE DATABASE ’mydatabase’”)) {
The way that this statement is processed is that the statement on the right is evaluated fi rst, which
attempts to create the database. That function returns a value, which in this case is TRUE or FALSE.
That value is then assigned to $result, which is then evaluated to determine if the code enclosed by
the if statement should be run.
MySQL command to create a database called mydatabase:
CREATE DATABASE ’mydatabase’;
<?php
define(“MYSQLUSER”, “root”);
define(“MYSQLPASS”, “p##V89Te5t”);
define(“HOSTNAME”, “localhost”);
if ($connection = new mysqli(HOSTNAME, MYSQLUSER, MYSQLPASS)) {
echo ‘Successful connection to MySQL <br />’;
if ($result = $connection->query(“CREATE DATABASE ’mydatabase’”)) {
$connection->select_db(‘mydatabase’); // use the database
echo “Database created”;
} else {
echo “Problem creating the database. Is the user not allowed
to create database or does the database already exist?”; }
}
?>
Note that the preceding code uses an equal sign in the if statement:
if ($result = $connection->query(“CREATE DATABASE ’mydatabase’”)) {
The way that this statement is processed is that the statement on the right is evaluated fi rst, which
attempts to create the database. That function returns a value, which in this case is TRUE or FALSE.
That value is then assigned to $result, which is then evaluated to determine if the code enclosed by
the if statement should be run.
Comparison Operators for If/Else Statements
PMA04:19
So far you have just been using the equal comparison operator, but conditional statements are really
checking to see if a statement evaluates to true, not if something is equal. You can also check to see
if something is not equal to something, less than something else, more than something, and so on.
Strings that consist of numbers are converted to numeric before the test except for the identical ===.
Comparison Operators
OPERATOR DESCRIPTION EXAMPLE
== Is equal to 6==’6’ returns true
=== Is identical to (including the type cast) 6===’6’ returns false
!= Is not equal to 6!=5 returns true
<> Is not equal to 6<>5 returns true
< Is less than 6<5 returns false
> Is greater than 6>5 returns true
<= Is less than or equal to 6<=5 returns false
>= Is greater than or equal to 6>=5 returns true
Some
checking to see if a statement evaluates to true, not if something is equal. You can also check to see
if something is not equal to something, less than something else, more than something, and so on.
Strings that consist of numbers are converted to numeric before the test except for the identical ===.
Comparison Operators
OPERATOR DESCRIPTION EXAMPLE
== Is equal to 6==’6’ returns true
=== Is identical to (including the type cast) 6===’6’ returns false
!= Is not equal to 6!=5 returns true
<> Is not equal to 6<>5 returns true
< Is less than 6<5 returns false
> Is greater than 6>5 returns true
<= Is less than or equal to 6<=5 returns false
>= Is greater than or equal to 6>=5 returns true
Some
Major online directories
PMA02:07
Like search engines, there are hundreds of different directories online. Some are general directories,
whereas others are very specific and associated with only one industry or organization. When you’re
selecting the directories to which you’d like to submit your site, be choosy. Don’t try to list your site
in a directory that’s inappropriate. You’ll just be wasting time and collecting rejection slips.
Some of the most well-known directories on the Web are:
Yahoo! Directory (dir.yahoo.com): The Yahoo! directory is one of the oldest directories
on the Internet, but when you go to Yahoo.com you actually won’t be taken to it. Instead,
you’ll be taken to a search engine, because Yahoo! changed its format not too long ago.
How ever, you can still access the directory, by going to the web site just listed. Yahoo!
directory is a general directory.
GoGuides.Org (www.goguides.org): This directory’s purpose is to be completely spamfree.
It’s a comprehensive search directory that even has image-searching capabilities.
Open Directory Project (www.dmoz.org): The Open Directory Project is one of the most
widely accessed directories on the Web. Users submit sites, and volunteer editors review
them. ODP is also an open-source technology, so many other directories use this technology
as a basis for their own offerings.
Google Directory (directory.google.com): The Google directory is one of those directories
built on the ODP platform. Google is most well-known for its search capabilities, but
adding a directory takes advantage of the desire of Internet users to dig deeper into very
specific search results.
SearchSight (www.searchsight.com): Another general directory, SearchSight is one of
the lesser-known directories, but it’s quickly gaining traction in the search market.
whereas others are very specific and associated with only one industry or organization. When you’re
selecting the directories to which you’d like to submit your site, be choosy. Don’t try to list your site
in a directory that’s inappropriate. You’ll just be wasting time and collecting rejection slips.
Some of the most well-known directories on the Web are:
Yahoo! Directory (dir.yahoo.com): The Yahoo! directory is one of the oldest directories
on the Internet, but when you go to Yahoo.com you actually won’t be taken to it. Instead,
you’ll be taken to a search engine, because Yahoo! changed its format not too long ago.
How ever, you can still access the directory, by going to the web site just listed. Yahoo!
directory is a general directory.
GoGuides.Org (www.goguides.org): This directory’s purpose is to be completely spamfree.
It’s a comprehensive search directory that even has image-searching capabilities.
Open Directory Project (www.dmoz.org): The Open Directory Project is one of the most
widely accessed directories on the Web. Users submit sites, and volunteer editors review
them. ODP is also an open-source technology, so many other directories use this technology
as a basis for their own offerings.
Google Directory (directory.google.com): The Google directory is one of those directories
built on the ODP platform. Google is most well-known for its search capabilities, but
adding a directory takes advantage of the desire of Internet users to dig deeper into very
specific search results.
SearchSight (www.searchsight.com): Another general directory, SearchSight is one of
the lesser-known directories, but it’s quickly gaining traction in the search market.
How Does Web-Site Content Affect SEO?
PMA02:04
The catch with web-site content is that is must be fresh and original to be most effective. If it’s not, the
content can do more harm than good. As you’ve already seen, content is the one element that can keep
customers coming back to your site time and again. When customers return often, your site ranking
improves, because the traffic registers the site with search crawlers as a valid and in-demand site.
When your content stinks, though, your site is headed in the opposite direction. If you have content
on your site that’s not professional, the search engine crawler will register this, and your ranking may
drop lower and lower and you could possibly be delisted altogether.
How do you know if your content stinks or not? It’s mostly a game of finding the right combination
of content types and consistent updates. But before you can even get to determining the right type of
content, you need to create a content strategy.
Your content strategy is the plan by which you’ll infuse your site with the right types of content at the
right times. It starts with determining how to reach your target audience. By now your target audience
should be engraved on your forehead, but how you reach that audience is something entirely
different. If your audience is teens, the language and method with which you’ll reach them will be
different than if your audience is senior adults or stay-at-home moms, or even full-time professionals.
One more consideration as you’re planning your content strategy: what do you do that’s different
from your competition? You should already have a good idea of what your competition does, and
how it seems to work for them. But what can you do differently? What sets you apart from all of
the other web sites out there that come up when a user searches for widgets?
content can do more harm than good. As you’ve already seen, content is the one element that can keep
customers coming back to your site time and again. When customers return often, your site ranking
improves, because the traffic registers the site with search crawlers as a valid and in-demand site.
When your content stinks, though, your site is headed in the opposite direction. If you have content
on your site that’s not professional, the search engine crawler will register this, and your ranking may
drop lower and lower and you could possibly be delisted altogether.
How do you know if your content stinks or not? It’s mostly a game of finding the right combination
of content types and consistent updates. But before you can even get to determining the right type of
content, you need to create a content strategy.
Your content strategy is the plan by which you’ll infuse your site with the right types of content at the
right times. It starts with determining how to reach your target audience. By now your target audience
should be engraved on your forehead, but how you reach that audience is something entirely
different. If your audience is teens, the language and method with which you’ll reach them will be
different than if your audience is senior adults or stay-at-home moms, or even full-time professionals.
One more consideration as you’re planning your content strategy: what do you do that’s different
from your competition? You should already have a good idea of what your competition does, and
how it seems to work for them. But what can you do differently? What sets you apart from all of
the other web sites out there that come up when a user searches for widgets?
Components of an SEO-Friendly Page
PMA02:01
Building an SEO-friendly web site doesn’t happen by accident. It requires an understanding of what
elements search engines examine and how those elements affect your ranking. It also requires including
as many of those elements as possible on your site. It does little good to have all the right meta
tags in place if you have no content and no links on your page.
It’s easy to get caught up in the details of SEO and forget the simplest web-design principles — principles
that play a large part in your search engine rankings. Having all the right keywords in the right
places in your tags and titles won’t do you much good if the content on your page is non-existent or
completely unreachable by a search engine crawler.
Understanding entry and exit pages
Entry and exit pages are the first and last pages that a user sees of your web site. It’s important to
understand that an entry page isn’t necessarily the home page on your web site. It can be any other
page where a user lands, either by clicking through search engine results, by clicking a link from
another web site or a piece of marketing material, or by bookmarking or typing directly into the
address bar of a browser.
Entry pages are important in SEO, because they are the first page users see as they come onto the
web site. The typical web site is actually several small connected sites. Your company web site might
contain hubs, or central points, for several different topics. Say you’re a pet store. Then you’ll have
hubs within your sites for dogs, cats, birds, fish, and maybe exotic animals. Each hub will have a
main page — which will likely be your entry page for that section — and several additional pages
leading from that central page to other pages containing relevant content, products, or information
about specific topics.
Understanding which of your pages are likely entry pages helps you to optimize those pages for
search engine crawlers. Using the pet-store example, if your home page and all the hub pages are
properly SEO’ed, you potentially could be ranked at or near the top of five different sets of search
results. When you add additional entry pages deeper in your web site structure (that is, a dogtraining
section to the hub for dogs), you’ve increased the number of times you can potentially
end up at the top of search engine rankings.
Because entry pages are important in the structure of your web site, you want to monitor those pages
using a web-site analytics program to ensure they are working the way you expect them to work. A
good analytics program, like Google Analytics, will show you your top entry and exit pages.
elements search engines examine and how those elements affect your ranking. It also requires including
as many of those elements as possible on your site. It does little good to have all the right meta
tags in place if you have no content and no links on your page.
It’s easy to get caught up in the details of SEO and forget the simplest web-design principles — principles
that play a large part in your search engine rankings. Having all the right keywords in the right
places in your tags and titles won’t do you much good if the content on your page is non-existent or
completely unreachable by a search engine crawler.
Understanding entry and exit pages
Entry and exit pages are the first and last pages that a user sees of your web site. It’s important to
understand that an entry page isn’t necessarily the home page on your web site. It can be any other
page where a user lands, either by clicking through search engine results, by clicking a link from
another web site or a piece of marketing material, or by bookmarking or typing directly into the
address bar of a browser.
Entry pages are important in SEO, because they are the first page users see as they come onto the
web site. The typical web site is actually several small connected sites. Your company web site might
contain hubs, or central points, for several different topics. Say you’re a pet store. Then you’ll have
hubs within your sites for dogs, cats, birds, fish, and maybe exotic animals. Each hub will have a
main page — which will likely be your entry page for that section — and several additional pages
leading from that central page to other pages containing relevant content, products, or information
about specific topics.
Understanding which of your pages are likely entry pages helps you to optimize those pages for
search engine crawlers. Using the pet-store example, if your home page and all the hub pages are
properly SEO’ed, you potentially could be ranked at or near the top of five different sets of search
results. When you add additional entry pages deeper in your web site structure (that is, a dogtraining
section to the hub for dogs), you’ve increased the number of times you can potentially
end up at the top of search engine rankings.
Because entry pages are important in the structure of your web site, you want to monitor those pages
using a web-site analytics program to ensure they are working the way you expect them to work. A
good analytics program, like Google Analytics, will show you your top entry and exit pages.
SEO Page elements
PMA01:58
Another facet of SEO to consider before you build your web site is the elements needed to ensure
that your site is properly indexed by a search engine. Each search engine places differing importance
on different page elements. For example, Google is a very keyword-driven search engine; however, it
also looks at site popularity and at the tags and links on any given page.
How well your site performs in a search engine is determined by how the elements of your page
meet the engine’s search criteria. The main criteria that every search engine looks for are the site
text (meaning keywords), tags — both HTML and meta tags — site links, and the site popularity.
Text
Text is one of the most important elements of any web site. Of particular importance are the keywords
within the text on a page, where those keywords appear, and how often they appear. This
is why keyword marketing has become such a large industry in a relatively short time. Your keywords
make all the difference when a search engine indexes your site and then serves it up in
search results.
Tags
In search engine optimization, two kinds of tags are important on your web site: meta tags and
HTML tags. Technically, meta tags are HTML tags, they just appear in very specific places. The
two most important meta tags are the keyword tag and the description tag.
The keyword tag occurs at the point where you list the keywords that apply to your web site. A
keyword tag on a search engine optimization page might look something like this:
<meta name=”keywords” content=”SEO, search engine optimization, page
rank”>
The description tag gives a short description of your page. Such a tag for the search engine optimization
page might look like this:
<meta name=”description” content=”The ultimate guide to search engine
optimization!”>
The title tag is the tag that’s used in the title of your web site. This tag will appear like this:
<Title>Your Title Here</Title>
Once you’ve tagged your site with a title tag, when a user pulls the site up, the title that you entered
will appear at the very top of the page if the user is using an Internet Explorer browser (IE) earlier
than IE7
High-level headings (H1s) are also important when a crawler examines your web site. Your keywords
should appear in your H1 headings, and in the HTML tags you use to create those headings. An H1
tag might look like this:
<h1>High-Level Heading</h1>
Anchor tags are used to create links to other pages.
that your site is properly indexed by a search engine. Each search engine places differing importance
on different page elements. For example, Google is a very keyword-driven search engine; however, it
also looks at site popularity and at the tags and links on any given page.
How well your site performs in a search engine is determined by how the elements of your page
meet the engine’s search criteria. The main criteria that every search engine looks for are the site
text (meaning keywords), tags — both HTML and meta tags — site links, and the site popularity.
Text
Text is one of the most important elements of any web site. Of particular importance are the keywords
within the text on a page, where those keywords appear, and how often they appear. This
is why keyword marketing has become such a large industry in a relatively short time. Your keywords
make all the difference when a search engine indexes your site and then serves it up in
search results.
Tags
In search engine optimization, two kinds of tags are important on your web site: meta tags and
HTML tags. Technically, meta tags are HTML tags, they just appear in very specific places. The
two most important meta tags are the keyword tag and the description tag.
The keyword tag occurs at the point where you list the keywords that apply to your web site. A
keyword tag on a search engine optimization page might look something like this:
<meta name=”keywords” content=”SEO, search engine optimization, page
rank”>
The description tag gives a short description of your page. Such a tag for the search engine optimization
page might look like this:
<meta name=”description” content=”The ultimate guide to search engine
optimization!”>
The title tag is the tag that’s used in the title of your web site. This tag will appear like this:
<Title>Your Title Here</Title>
Once you’ve tagged your site with a title tag, when a user pulls the site up, the title that you entered
will appear at the very top of the page if the user is using an Internet Explorer browser (IE) earlier
than IE7
High-level headings (H1s) are also important when a crawler examines your web site. Your keywords
should appear in your H1 headings, and in the HTML tags you use to create those headings. An H1
tag might look like this:
<h1>High-Level Heading</h1>
Anchor tags are used to create links to other pages.