Your first PHP-enabled page

Create a file named hello.php and put it in your web server's root directory (DOCUMENT_ROOT) with the following content:

Example #1 Our first PHP script: hello.php

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'?> 
 </body>
</html>

Use your browser to access the file with your web server's URL, ending with the /hello.php file reference. When developing locally this URL will be something like http://localhost/hello.php or http://127.0.0.1/hello.php but this depends on the web server's configuration. If everything is configured correctly, this file will be parsed by PHP and the following output will be sent to your browser:

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <p>Hello World</p>
 </body>
</html>

This program is extremely simple and you really did not need to use PHP to create a page like this. All it does is display: Hello World using the PHP echo statement. Note that the file does not need to be executable or special in any way. The server finds out that this file needs to be interpreted by PHP because you used the ".php" extension, which the server is configured to pass on to PHP. Think of this as a normal HTML file which happens to have a set of special tags available to you that do a lot of interesting things.

If you tried this example and it did not output anything, it prompted for download, or you see the whole file as text, chances are that the server you are on does not have PHP enabled, or is not configured properly. Ask your administrator to enable it for you using the Installation chapter of the manual. If you are developing locally, also read the installation chapter to make sure everything is configured properly. Make sure that you access the file via http with the server providing you the output. If you just call up the file from your file system, then it will not be parsed by PHP. If the problems persist anyway, do not hesitate to use one of the many » PHP support options.

The point of the example is to show the special PHP tag format. In this example we used <?php to indicate the start of a PHP tag. Then we put the PHP statement and left PHP mode by adding the closing tag, ?>. You may jump in and out of PHP mode in an HTML file like this anywhere you want. For more details, read the manual section on the basic PHP syntax.

Note: A Note on Line Feeds

Line feeds have little meaning in HTML, however it is still a good idea to make your HTML look nice and clean by putting line feeds in. A linefeed that follows immediately after a closing ?> will be removed by PHP. This can be extremely useful when you are putting in many blocks of PHP or include files containing PHP that aren't supposed to output anything. At the same time it can be a bit confusing. You can put a space after the closing ?> to force a space and a line feed to be output, or you can put an explicit line feed in the last echo/print from within your PHP block.

Note: A Note on Text Editors

There are many text editors and Integrated Development Environments (IDEs) that you can use to create, edit and manage PHP files. A partial list of these tools is maintained at » PHP Editors List. If you wish to recommend an editor, please visit the above page and ask the page maintainer to add the editor to the list. Having an editor with syntax highlighting can be helpful.

Note: A Note on Word Processors

Word processors such as StarOffice Writer, Microsoft Word and Abiword are not optimal for editing PHP files. If you wish to use one for this test script, you must ensure that you save the file as plain text or PHP will not be able to read and execute the script.

Note: A Note on Windows Notepad

If you are writing your PHP scripts using Windows Notepad, you will need to ensure that your files are saved with the .php extension. (Notepad adds a .txt extension to files automatically unless you take one of the following steps to prevent it.) When you save the file and are prompted to provide a name for the file, place the filename in quotes (i.e. "hello.php"). Alternatively, you can click on the 'Text Documents' drop-down menu in the 'Save' dialog box and change the setting to "All Files". You can then enter your filename without quotes.

Now that you have successfully created a working PHP script, it is time to create the most famous PHP script! Make a call to the phpinfo() function and you will see a lot of useful information about your system and setup such as available predefined variables, loaded PHP modules, and configuration settings. Take some time and review this important information.

Example #2 Get system information from PHP

<?php phpinfo(); ?>

add a note add a note

User Contributed Notes 8 notes

up
1
Luis
2 months ago
In my particular configuration (Apache Web Server on ArchLinux) the Document Root is /srv/http, hence I should put my helloworld.php file in that directory, not in /var/www, which doesn't exist.

You can find out checking your server configuration. Again, with my particular configuration, if I execute (in a terminal window) the following command:

   cat /etc/httpd/conf/httpd.conf | grep -e '^DocumentRoot'

I get the output:

   DocumentRoot "/srv/http"

which indicates me where to locate the .php files
up
1
ivan at ivandigital dot com
2 months ago
Note on Line Feeds

These are 2 alternative ways to add a line feed after a php block.

---
1. Echo a "\n" at the end of the block.

<?php
   
echo "Hello World";
    echo
"\n";
?>

Alternatively you can also concatenate "\n" to the last echo/print in the block.

<?php
   
echo "Hello World" . "\n";
?>

Note: the string "\n" must be inside double quotes; using single quotes will output the literal string.

---
2. Add two line feeds after the closing ?> tag.

By explicitly adding two line feeds after the closing ?> tag, the first one will be removed by php, and the second one will appear in the output.

---
One advantage of both approaches is that you don't need to add a space after the closing ?> tag (to force a space and a line feed to be output), instead, only the line feed is output.
up
21
ryan420 at earthling dot net
11 years ago
Note on permissions of php files:  You don't have to use 'chmod 0755' under UNIX or Linux; the permissions need not be set to executable.  Again, this is more like a html file than a cgi script.  The only mandatory requirement is that the web server process has read access to the php file(s).  With many Linux systems, it is popular for Apache to run under the 'apache' account.  Given that HTML and other web files, like php, are often owned by user 'root' and group 'web' (or another similar group name), acceptable permissions might be those achieved with 'chmod 664' or 'chmod 644'.  The web server process, running under the 'apache' account, will inherit read only permissions.  The 'apache' account is not root and is not a member of the 'web' group, so the "other" portion of the permissions (the last "4") applies.
up
1
ivan at ivandigital dot com
2 months ago
Note on Line Feeds

These are 2 alternative ways to add a line feed after a php block.

---
1. Echo a "\n" at the end of the block.

<?php
   
echo "Hello World";
    echo
"\n";
?>

Alternatively you can also concatenate "\n" to the last echo/print in the block.

<?php
   
echo "Hello World" . "\n";
?>

Note: the string "\n" must be inside double quotes; using single quotes will output the literal string.

---
2. Add two line feeds after the closing ?> tag.

By explicitly adding two line feeds after the closing ?> tag, the first one will be removed by php, and the second one will appear in the output.

---
One advantage of both approaches is that you don't need to add a space after the closing ?> tag (to force a space and a line feed to be output), instead, only the line feed is output.
up
0
ivan at ivandigital dot com
2 months ago
Note on Line Feeds

These are 2 alternative ways to add a line feed after a php block.

---
1. Echo a "\n" at the end of the block.

<?php
   
echo "Hello World";
    echo
"\n";
?>

Alternatively you can also concatenate "\n" to the last echo/print in the block.

<?php
   
echo "Hello World" . "\n";
?>

Note: the string "\n" must be inside double quotes; using single quotes will output the literal string.

---
2. Add two line feeds after the closing ?> tag.

By explicitly adding two line feeds after the closing ?> tag, the first one will be removed by php, and the second one will appear in the output.

---
One advantage of both approaches is that you don't need to add a space after the closing ?> tag (to force a space and a line feed to be output), instead, only the line feed is output.
up
-99
naoehnadaserio at gmail dot com
11 months ago
The folder to put your helloworld.php is /var/www/ on Linux
up
-131
miklcct at gmail dot com
4 years ago
If you save your code as UTF-8, make sure that the BOM (EF BB BF) is not present as the first 3 bytes of the file otherwise it may interfere with the code if the PHP need to be run before any output (e.g. header()).
up
-136
onebadscrivener at gmail dot com
9 years ago
OS X users editing in TextEdit will need to make sure their TextEdit preferences are set to allow plain text files.  Under the TextEdit pull-down menu, choose PREFERENCES, then under NEW DOCUMENT ATTRIBUTES in the window that pops up, click PLAIN TEXT. 

Then, in the section of that same window called "saving," DESELECT "append .txt extension to plain text files."  This will allow you to save your files with a .php extension.

Then close the PREFERENCES window.  You're good to go.
To Top