User Tools

Site Tools


programming:php

This is an old revision of the document!


PHP Programming

PHP is a web-native language that essentially embeds itself within HTML.

While the wiki is still being built, refer to: https://www.devdungeon.com/topics/php

Installing

In Debian and most Linux distributions, it's as simple as using the package manager:

apt install php php-pdo-sqlite
php --version
 
# For Apache2 httpd
apt install apache2 libapache2-mod-php

See the web servers page for more info on configuring

Show all errors

<?php
// The ini_set options could go in php.ini
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Built-in webserver

PHP has a built-in web server that is useful for local developing and testing.

# Serves current directory, no directory listing
php -S localhost:9999
 
# Specify path to serve
php -S localhost:9999 -t /path/to/serve

php.ini settings

Composer

Code examples

Hello world

Here is a simple “Hello world” application.

hello.php
<?php
echo "Hello, world!";

Run this example with the php interpreter:

php hello.php

Include another PHP file

load_lib.php
<?php
// Pick one method for loading another PHP file
include('my_lib.php'); // Include if available
require('my_lib.php'); // Fail if not available
require_once('my_lib.php'); // Ensure not loaded twice

Forms

form.php
<html>
<body>
 
<?php
if ($_POST['something']) {
  print("Received: " . $_POST['something'];
}
 
<form method="post">
  <input type="text" name="something" id="something" />
  <br />
  <button type="submit">Submit</button>
</form>
 
</body>
</html>

SQLite database

This example is for SQLite3 using the PHP PDO_SQLITE, but essentially the same for other databases too.

apt install php-pdo-sqlite

sqlite_example.php
<?php
 
// Connect (Use `sqlite::memory:` for memory-only)
$db = new PDO('sqlite:'.__DIR__.'/bookmarks.sqlite3');
 
// Create table
$db->exec(
"CREATE TABLE IF NOT EXISTS urls (
    url TEXT,
    notes TEXT
    )"
);
 
// Prepared statement for changes
$query = $db->prepare('INSERT INTO urls (url) VALUES (?)');
$query->execute(['https://www.devdungeon.com/']);
 
// Query
$result = $db->query('SELECT * FROM urls');
foreach ($result as $result) {
    print($result['url'].'<br />');
}
 
$db = null;  // Close it
programming/php.1618360745.txt.gz · Last modified: 2021/04/14 00:39 by nanodano