Содержание

PHP

РНР (читается как пи-эйч-пи) является интерпретируемым языком программирования.

Рабочие скрипты:

Документация PHP:

Синтаксис

Операторы

Каждое из этих условий может быть пустым.

Пример. Так как условие1 безусловно выполняется один раз в начале цикла - это можно использовать для записи более компактного кода.

array1.php
$matches = array('Makap', true, 'false', 35);
 
for ($i = 0, $cnt=count($matches); $i < $cnt; $i++) {
        echo "$matches[$i]\n";
}

Вместо фигурных скобок используется закрывающее выражение endforeach, открывающая конструкция завершается двоеточием, а закрывающая – точкой с запятой.

В альтернативном варианте можно записать также: for, while, if-else, switch-case.

Функции

Функция объявляется при помощи ключевого слова function, за которым следуют ее имя и какие либо параметры в скобках. Для вызова функции достаточно указать ее имя и задать значения аргументов для каждого ее параметра. Если функция возвращает значение, то можно присвоить результат функции переменной.

PHP анализирует весь файл до его выполнения, поэтому можно произвольно размещать объявления функций и их вызовы. Однако в PHP запрещено переопределение функций. Если PHP обнаруживает функцию с именем ранее найденной функции, то он выдает фатальную ошибку и «умирает».

Если не определено обратное, все значения передаются в функцию и из функции по значению, а не по ссылке. Это означает, что PHP создает копию значения и предоставляет эту копию для обработки. Поэтому любые изменения, происходящие с копией, не влияют на оригинальное значение. Во многих языках передача переменных по ссылке имеет еще одно преимущество – она значительно быстрее передачи по значению. И хотя для PHP это тоже справедливо, но разница в скорости минимальная. По этой причине прибегать к передаче по ссылке нужно только при реальной необходимости и никогда в целях улучшения производительности.

Для того чтобы функция принимала аргументы по ссылке, а не по значению, поставьте символ & перед именем параметра в прототипе функции:

function wrap_html_tag(&$string, $tag = 'b') {
   $string = "<$tag>$string</$tag>";
}

Теперь нет необходимости возвращать строку, поскольку изменяется сам оригинал.

Желательно чтобы функция всегда возвращала значение, чтобы можно было проверить выполнилась функция или нет.

PHP и JavaScript

Взаимодействие PHP и JavaScript

  1. Внесение изменений в текст страницы, например в php файле
    echo '
    <html><head>
    <script>
    var fromDate="'.$_POST['fromDate'].'";
    var toDate="'.$_POST['toDate'].'";
    </script>
    ...Your HTML here
    ';

    После загрузки при помощи JavaScript считываются переменные fromDate и toDate.

  2. Использование Cookie

Суперглобальные переменные

Переменная $GLOBALS. Ассоциативный массив (array), содержащий ссылки на все переменные глобальной области видимости скрипта, определенные в данный момент. Имена переменных являются ключами массива.

Опция (register_globals=On) в Настройка файла php.ini для высоконагруженных сайтов указывает на необходимость регистрации переменных, полученных методом Метод HTTP POST или get в глобальный массив $GLOBALS.
<?php
$conf['conf']['foo'] = 'this is foo';
$conf['conf']['bar'] = 'this is bar';
global $conf; // добавляем переменную в глобальный массив видимости скрипта
$output = print_r($GLOBALS["conf"], true);
echo "$output\n";
?>

Для объявления глобальной переменной ее достаточно поместить в массив $GLOBALS

$GLOBALS['testkey2']='testvalue2';

Вывести на экран все значения переменных массива $GLOBALS можно при помощи print_r($GLOBALS); или так:

foreach ($GLOBALS as $key=>$value)
   echo 'GLOBALS['.$key.'] == '.$value.'<br>'; 

Переменная $_SERVER.

Переменная $_GET.

Переменная $_POST.

Переменная $_FILES - переменные файлов, загруженных по протоколу Коды состояния HTTP. Методы и структура протокола HTTP методом Метод HTTP POST. Пример PHP - загрузка файла на сервер.

Переменная $_REQUEST - ассоциативный массив (array), который по умолчанию содержит данные переменных $_GET, $_POST и $_COOKIE. Переменные в массиве $_REQUEST передаются в скрипт посредством методов GET, POST или COOKIE, поэтому им нельзя доверять, т.к. они могли быть изменены удаленным пользователем. Их наличие и порядок добавления данных в соответствующие массивы определяется директивой variables_order (по умолчанию установлено GPCS).

Переменная $_SESSION

Переменная $_ENV. Заполняется если скрипт был запущен из командной строки. Массив $_SERVER будет содержать все переменные из массива $_ENV.

Переменная $_COOKIE: Cookie.

Переменная $http_response_header

require и include

Операторы include, require, include_once и require_once работают аналогично серверным включениям (SSI). Операторы include и require являются языковыми конструкциями, а значит могут использоваться без круглых скобок.

include 'vars.php'; include_once './second.class.php';
Операторы require() и include() ничем не отличаются друг от друга, единственно в случае неудачного их выполнения require() выдаст сообщение о неисправимой ошибке и прервет выполнение программы, а include() выдаст только предупреждение.

В относительном виде путь может содержать специальные управляющие символы "." (точка) и ".." (две точки). Точка обозначает текущий каталог, а две точки - предыдущий вышележащий.

Относительный путь всегда вычисляется начиная от файла, с которого началось исполнение, а не от текущего исполняемого.

Тернарная операция

Тернарная операция в PHP записывается аналогично языку С. Синтаксис тернарного оператор "?":

$переменная = условие ? $переменная = если условие выполнено : $переменная = если условие не выполнено

Справочник функций PHP

Обработка строк

Обработка текста

Функции запуска внешних программ

Функции для работы с файлами и сетью

Безопасность

Минимальная обработка на стороне сервера данных присланных пользователем:

Фильтрация(валидация) данных

Маленькие советы