update folders

This commit is contained in:
2023-08-05 22:45:06 +03:00
parent c0aaec4c08
commit c2ef252c14
136 changed files with 0 additions and 0 deletions

View File

@ -0,0 +1,13 @@
# Fenom
## IF . ELSEIF . ELSE
```
{if <expression>}
{* ...code... *}
{elseif <expression>}
{* ...code... *}
{else}
{* ...code... *}
{/if}
```

View 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

View 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);
?>

View 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 не существует";
}
?>

View 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"
?>

View 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");
}
?>

View 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
?>

View 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);
?>

View 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
View 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));
?>

View 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'";
?>

View 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());
?>