update folders
This commit is contained in:
13
snipplets/code/PHP/Fenom.md
Normal file
13
snipplets/code/PHP/Fenom.md
Normal file
@ -0,0 +1,13 @@
|
||||
# Fenom
|
||||
|
||||
## IF . ELSEIF . ELSE
|
||||
|
||||
```
|
||||
{if <expression>}
|
||||
{* ...code... *}
|
||||
{elseif <expression>}
|
||||
{* ...code... *}
|
||||
{else}
|
||||
{* ...code... *}
|
||||
{/if}
|
||||
```
|
16
snipplets/code/PHP/README.md
Normal file
16
snipplets/code/PHP/README.md
Normal file
@ -0,0 +1,16 @@
|
||||
# PHP
|
||||
|
||||
## std
|
||||
- [`setlocale`](setlocale.php) - Устанавливает настройки локали
|
||||
- [`gettype`](gettype.php) - Возвращает тип переменной
|
||||
- [`file_exists`](file_exists.php) - Проверяет существование указанного файла или каталога
|
||||
- [`ksort`](ksort.php) - Сортирует массив по ключу в порядке возрастания
|
||||
- [`array_reverse`](array_reverse.php) - Возвращает массив с элементами в обратном порядке
|
||||
- [`in_array`](in_array.php) - Проверяет, присутствует ли значение в массиве
|
||||
- [`json_decode`](json_decode.php) - Декодирует строку JSON
|
||||
- [`json_encode`](json_encode.php) - Возвращает JSON-представление данных
|
||||
- [`SQLite3`](sqlite3.php) - Простой использования класса SQLite3
|
||||
- [`mail`](mail.php) - Отправляет электронную почту
|
||||
|
||||
## Libs
|
||||
- [`Fenom`](Fenom.md) - fenom
|
22
snipplets/code/PHP/array_reverse.php
Normal file
22
snipplets/code/PHP/array_reverse.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
/*
|
||||
array_reverse(array $array, bool $preserve_keys = false): array
|
||||
|
||||
Принимает массив array и возвращает новый массив,
|
||||
содержащий элементы исходного массива в обратном порядке.
|
||||
*/
|
||||
|
||||
/*
|
||||
Список параметров:
|
||||
array
|
||||
Входной массив.
|
||||
|
||||
preserve_keys
|
||||
Если установлено в true, то числовые ключи будут сохранены.
|
||||
Нечисловые ключи не подвержены этой опции и всегда сохраняются.
|
||||
*/
|
||||
|
||||
$input = array("php", 4.0, array("green", "red"));
|
||||
$reversed = array_reverse($input);
|
||||
$preserved = array_reverse($input, true);
|
||||
?>
|
27
snipplets/code/PHP/file_exists.php
Normal file
27
snipplets/code/PHP/file_exists.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/*
|
||||
file_exists(string $filename): bool
|
||||
|
||||
Проверяет наличие указанного файла или каталога.
|
||||
*/
|
||||
|
||||
/*
|
||||
filename
|
||||
Путь к файлу или каталогу.
|
||||
|
||||
На платформах Windows, для проверки наличия файлов на сетевых ресурсах,
|
||||
используйте имена, подобные //computername/share/filename
|
||||
или \\computername\share\filename.
|
||||
|
||||
Возвращает true, если файл или каталог, указанный параметром filename,
|
||||
существует, иначе возвращает false.
|
||||
*/
|
||||
|
||||
$filename = '/path/to/foo.txt';
|
||||
|
||||
if (file_exists($filename)) {
|
||||
echo "Файл $filename существует";
|
||||
} else {
|
||||
echo "Файл $filename не существует";
|
||||
}
|
||||
?>
|
18
snipplets/code/PHP/gettype.php
Normal file
18
snipplets/code/PHP/gettype.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
// gettype(mixed $value): string
|
||||
$value = 1;
|
||||
|
||||
// Return Values
|
||||
// Possible values for the returned string are:
|
||||
//
|
||||
// "boolean"
|
||||
// "integer"
|
||||
// "double" (for historical reasons "double" is returned in case of a float, and not simply "float")
|
||||
// "string"
|
||||
// "array"
|
||||
// "object"
|
||||
// "resource"
|
||||
// "resource (closed)" as of PHP 7.2.0
|
||||
// "NULL"
|
||||
// "unknown type"
|
||||
?>
|
10
snipplets/code/PHP/in_array.php
Normal file
10
snipplets/code/PHP/in_array.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
$os = array("Mac", "NT", "Irix", "Linux");
|
||||
|
||||
if (in_array("Irix", $os)) {
|
||||
echo("Got Irix");
|
||||
}
|
||||
if (in_array("mac", $os)) {
|
||||
echo("Got mac");
|
||||
}
|
||||
?>
|
43
snipplets/code/PHP/json_decode.php
Normal file
43
snipplets/code/PHP/json_decode.php
Normal file
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/*
|
||||
json_decode(
|
||||
string $json,
|
||||
?bool $associative = null,
|
||||
int $depth = 512,
|
||||
int $flags = 0
|
||||
): mixed
|
||||
*/
|
||||
|
||||
/*
|
||||
json
|
||||
Строка (string) json для декодирования.
|
||||
Эта функция работает только со строками в кодировке UTF-8.
|
||||
|
||||
associative
|
||||
Если true, объекты JSON будут возвращены как ассоциативные массивы (array);
|
||||
если false, объекты JSON будут возвращены как объекты (object).
|
||||
Если null, объекты JSON будут возвращены как ассоциативные массивы (array)
|
||||
или объекты (object) в зависимости от того,
|
||||
установлена ли JSON_OBJECT_AS_ARRAY в flags.
|
||||
|
||||
depth
|
||||
Максимальная глубина вложенности структуры,
|
||||
для которой будет производиться декодирование.
|
||||
|
||||
flags
|
||||
Битовая маска из констант JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE,
|
||||
JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR.
|
||||
Поведение этих констант описаны на странице JSON-констант.
|
||||
*/
|
||||
|
||||
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
|
||||
|
||||
var_dump(json_decode($json));
|
||||
var_dump(json_decode($json, true));
|
||||
|
||||
|
||||
$json = '{"foo-bar": 12345}';
|
||||
|
||||
$obj = json_decode($json);
|
||||
print $obj->{'foo-bar'}; // 12345
|
||||
?>
|
31
snipplets/code/PHP/json_encode.php
Normal file
31
snipplets/code/PHP/json_encode.php
Normal file
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/*
|
||||
json_decode(
|
||||
string $json,
|
||||
?bool $associative = null,
|
||||
int $depth = 512,
|
||||
int $flags = 0
|
||||
): mixed
|
||||
*/
|
||||
|
||||
/*
|
||||
value
|
||||
value - значение, которое будет закодировано.
|
||||
Может быть любого типа, кроме resource.
|
||||
|
||||
flags
|
||||
Битовая маска, составляемая из значений JSON_FORCE_OBJECT, JSON_HEX_QUOT,
|
||||
JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_INVALID_UTF8_IGNORE,
|
||||
JSON_INVALID_UTF8_SUBSTITUTE, JSON_NUMERIC_CHECK, JSON_PARTIAL_OUTPUT_ON_ERROR,
|
||||
JSON_PRESERVE_ZERO_FRACTION, JSON_PRETTY_PRINT, JSON_UNESCAPED_LINE_TERMINATORS,
|
||||
JSON_UNESCAPED_SLASHES, JSON_UNESCAPED_UNICODE, JSON_THROW_ON_ERROR.
|
||||
Смысл этих констант объясняется на странице JSON-констант.
|
||||
|
||||
depth
|
||||
Устанавливает максимальную глубину. Должен быть больше нуля.
|
||||
*/
|
||||
|
||||
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
|
||||
|
||||
echo json_encode($arr);
|
||||
?>
|
45
snipplets/code/PHP/ksort.php
Normal file
45
snipplets/code/PHP/ksort.php
Normal file
@ -0,0 +1,45 @@
|
||||
<?php
|
||||
/*
|
||||
ksort(array &$array, int $flags = SORT_REGULAR): bool
|
||||
|
||||
Сортирует array по ключу в порядке возрастания.
|
||||
*/
|
||||
|
||||
/*
|
||||
array
|
||||
Входной массив.
|
||||
|
||||
flags
|
||||
Необязательный второй параметр flags может использоваться
|
||||
для изменения поведения сортировки с использованием следующих значений:
|
||||
|
||||
Флаги типа сортировки:
|
||||
|
||||
SORT_REGULAR - обычное сравнение элементов; подробности описаны
|
||||
в разделе операторы сравнения
|
||||
SORT_NUMERIC - числовое сравнение элементов
|
||||
SORT_STRING - строковое сравнение элементов
|
||||
SORT_LOCALE_STRING - сравнение элементов как строки на основе текущего
|
||||
языкового стандарта. Используется языковой стандарт,
|
||||
который можно изменить с помощью setlocale()
|
||||
SORT_NATURAL - сравнение элементов как строки,
|
||||
используя "естественный порядок", например natsort()
|
||||
SORT_FLAG_CASE - можно объединять (побитовое ИЛИ) с SORT_STRING
|
||||
или SORT_NATURAL для сортировки строк без учёта регистра
|
||||
*/
|
||||
|
||||
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
|
||||
ksort($fruits);
|
||||
foreach ($fruits as $key => $val) {
|
||||
echo "$key = $val\n";
|
||||
}
|
||||
|
||||
/*
|
||||
Результат выполнения данного примера:
|
||||
|
||||
a = orange
|
||||
b = banana
|
||||
c = apple
|
||||
d = lemon
|
||||
*/
|
||||
?>
|
111
snipplets/code/PHP/mail.php
Normal file
111
snipplets/code/PHP/mail.php
Normal file
@ -0,0 +1,111 @@
|
||||
<?php
|
||||
/*
|
||||
mail(
|
||||
string $to,
|
||||
string $subject,
|
||||
string $message,
|
||||
array|string $additional_headers = [],
|
||||
string $additional_params = ""
|
||||
): bool
|
||||
*/
|
||||
|
||||
/*
|
||||
to
|
||||
Получатель, или получатели письма.
|
||||
Формат этого параметра должен соответствовать RFC 2822. Несколько примеров:
|
||||
user@example.com
|
||||
user@example.com, anotheruser@example.com
|
||||
User <user@example.com>
|
||||
User <user@example.com>, Another User <anotheruser@example.com>
|
||||
|
||||
subject
|
||||
Тема отправляемого письма.
|
||||
Предостережение
|
||||
Тема должна соответствовать RFC 2047.
|
||||
|
||||
message
|
||||
Отправляемое сообщение.
|
||||
Каждая строка должна быть отделена символом CRLF (\r\n).
|
||||
Строки не должны быть длиннее 70 символов.
|
||||
additional_headers (необязательный)
|
||||
Строка или массив, которые будут вставлены в конец отправляемых заголовков письма.
|
||||
Обычно используется для добавления дополнительных заголовков (From, Cc, and Bcc).
|
||||
Несколько дополнительных заголовков должны быть разделены CRLF (\r\n).
|
||||
Если для составления этого заголовка используются внешние данные,
|
||||
то они должны быть проверены для избежания инъекций нежелательных заголовков.
|
||||
Если передан массив, то его ключи будут именами заголовка, а значения значениями.
|
||||
additional_params (необязательный)
|
||||
Параметр additional_params может быть использован для передачи дополнительных флагов
|
||||
в виде аргументов командной строки для программы сконфигурированной для отправки писем,
|
||||
указанной директивой sendmail_path. Например, можно установить отправителя письма
|
||||
при использовании sendmail с помощью опции -f.
|
||||
Параметр автоматически экранируется функцией escapeshellcmd(),
|
||||
чтобы не допустить выполнение команд. Но escapeshellcmd()
|
||||
позволяет добавлять дополнительные параметры. В целях безопасности рекомендуется проверять
|
||||
и очищать этот параметр.
|
||||
Так как escapeshellcmd() применяется автоматически, то нельзя использовать некоторые символы,
|
||||
допустимые к использованию в email-адресах некоторыми RFC. mail() не допускает такие символы,
|
||||
поэтому в программах, в которых они требуются, рекомендуется использовать альтернативы
|
||||
для их отправки (например фреймворки или библиотеки).
|
||||
Пользователь, под которым работает веб-сервер должен быть добавлен в список доверенных
|
||||
в конфигурации sendmail для того чтобы избежать добавления заголовка 'X-Warning'
|
||||
при указании отправителя с помощью опции (-f). Для пользователей sendmail
|
||||
- это файл /etc/mail/trusted-users.
|
||||
|
||||
Возвращает true, если письмо было принято для передачи, иначе false.
|
||||
*/
|
||||
|
||||
$to = 'nobody@example.com';
|
||||
$subject = 'the subject';
|
||||
$message = 'hello';
|
||||
$headers = 'From: webmaster@example.com' . "\r\n" .
|
||||
'Reply-To: webmaster@example.com' . "\r\n" .
|
||||
'X-Mailer: PHP/' . phpversion();
|
||||
|
||||
mail($to, $subject, $message, $headers);
|
||||
|
||||
|
||||
/* Пример: Отправка HTML-сообщения */
|
||||
|
||||
// несколько получателей
|
||||
$to = 'johny@example.com, sally@example.com'; // обратите внимание на запятую
|
||||
|
||||
// тема письма
|
||||
$subject = 'Birthday Reminders for August';
|
||||
|
||||
// текст письма
|
||||
$message = '
|
||||
<html>
|
||||
<head>
|
||||
<title>Birthday Reminders for August</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Here are the birthdays upcoming in August!</p>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Johny</td><td>10th</td><td>August</td><td>1970</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
';
|
||||
|
||||
// Для отправки HTML-письма должен быть установлен заголовок Content-type
|
||||
$headers = 'MIME-Version: 1.0' . "\r\n";
|
||||
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
|
||||
|
||||
// Дополнительные заголовки
|
||||
$headers[] = 'To: Mary <mary@example.com>, Kelly <kelly@example.com>';
|
||||
$headers[] = 'From: Birthday Reminder <birthday@example.com>';
|
||||
$headers[] = 'Cc: birthdayarchive@example.com';
|
||||
$headers[] = 'Bcc: birthdaycheck@example.com';
|
||||
|
||||
// Отправляем
|
||||
mail($to, $subject, $message, implode("\r\n", $headers));
|
||||
?>
|
55
snipplets/code/PHP/setlocale.php
Normal file
55
snipplets/code/PHP/setlocale.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/*
|
||||
setlocale(int $category, string $locales, string ...$rest): string|false
|
||||
|
||||
Альтернативная сигнатура (не поддерживается с именованными аргументами):
|
||||
setlocale(int $category, array $locale_array): string|false
|
||||
*/
|
||||
|
||||
/*
|
||||
category
|
||||
Параметр category - это именованная константа, определяющая категорию функций,
|
||||
на которые будет влиять установка локали:
|
||||
|
||||
LC_ALL - все нижеперечисленное
|
||||
LC_COLLATE - функции сравнения строк, смотрите strcoll()
|
||||
LC_CTYPE - функции преобразования и классификации строк, например strtoupper()
|
||||
LC_MONETARY - для функции localeconv()
|
||||
LC_NUMERIC - задаёт символ десятичного разделения (смотрите также localeconv())
|
||||
LC_TIME - форматирование даты/времени функцией strftime()
|
||||
LC_MESSAGES - для системных сообщений (доступна, если PHP был скомпилирован с поддержкой libintl)
|
||||
locales
|
||||
|
||||
Если в качестве locales передана пустая строка "" или null,
|
||||
имена локалей будут взяты из одноимённых переменных окружения
|
||||
или переменной с именем "LANG".
|
||||
Если в качестве locales передан "0", локаль изменена не будет,
|
||||
а будет возвращено текущее значение.
|
||||
Если в качестве locales передан массив, или после этого аргумента следуют
|
||||
дополнительные аргументы, функция будет использовать элементы массива
|
||||
или аргументы по порядку в качестве имён локали до тех пор,
|
||||
пока установка локали не будет успешной. Это удобно, если одна и та же локаль
|
||||
имеет разное имя в различных системах, или для создания запасного варианта
|
||||
при отсутствии какой-либо локали в системе.
|
||||
|
||||
rest
|
||||
Необязательные аргументы в виде строк или массивов
|
||||
для установки настроек локали до первой успешной попытки.
|
||||
|
||||
locale_array
|
||||
Каждый элемент массива пытается установить новую локаль
|
||||
до первой успешной попытки. Это полезно,
|
||||
если локаль известна под разными именами в разных системах
|
||||
или для обеспечения запасного варианта для возможно недоступного
|
||||
языкового стандарта.
|
||||
|
||||
Замечание:
|
||||
На Windows setlocale(LC_ALL, '') устанавливает имена локалей из системных
|
||||
региональных/языковых настроек (доступных через Панель Управления).
|
||||
*/
|
||||
|
||||
setlocale(LC_ALL, 'nl_NL');
|
||||
|
||||
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
|
||||
echo "На этой системе немецкая локаль имеет имя '$loc_de'";
|
||||
?>
|
21
snipplets/code/PHP/sqlite3.php
Normal file
21
snipplets/code/PHP/sqlite3.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
/**
|
||||
* Простой пример расширения класса SQLite3 и изменения параметров конструктора.
|
||||
* После чего использование метода open для инициализации БД.
|
||||
*/
|
||||
class MyDB extends SQLite3
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
$this->open('mysqlitedb.db');
|
||||
}
|
||||
}
|
||||
|
||||
$db = new MyDB();
|
||||
|
||||
$db->exec('CREATE TABLE foo (bar STRING)');
|
||||
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");
|
||||
|
||||
$result = $db->query('SELECT bar FROM foo');
|
||||
var_dump($result->fetchArray());
|
||||
?>
|
Reference in New Issue
Block a user