Найбільш поширені операції в PHP8
Список найбільш часто потрібних частин коду для роботи з PHP8, список операцій.
- Операції з класами та методами:
// ВИДАЛЯЄМО ВСІ ШТМЛ теги крім: <b><br><strong><p><a>.
$v = strip_tags($v, '<b><br><strong><p><a>');
Тернарний оператор:
// =(1)=Якщо існує $passed то виведе його значення, якщо не існує то нічого:
echo isset($passed) ? $passed : "";
// =(1.1)= або так - Оператор ?? перевіряє чи існує змінна:
echo $passed ?? "";
$template_full = $vall['edp']['0']['i_fski']; // Шаблон повного поста
if($template_full == 0){
$template_full = '0-full/post-fuul.php';
} else {$template_full = $vall['edp']['0']['i_fski'];}
аналог запису на тернарнму операторі:
$template_full = ($vall['edp']['0']['i_fski'] == 0) ? '0-full/post-fuul.php' : $vall['edp']['0']['i_fski'];
Провірити чи існує файл або каталог:
$filename = '/path/to/foo.txt';
file_exists($filename));
Провірити змінну на пустоту:
//Якщо $zminna існує(isset) або(&&) вона не пуста(!empty)
if (isset($zminna) && !empty($zminna)){
// Виконання коду
}
Задати змінній або функції кокретний тип:
(int) $a = 5;
function name_ame(string $src): array
{
return [
'img_big' => 2,
'img_thumb' => 3,
'filesize_big' => 4
];
}
Вернути з функції або класу ДЕКІЛЬКА значень:
function getPrice($price, $percent){
$sale = ($price * ($percent / 100));
$new_price = $price - $sale;
return [
'sale' => $sale,
'new_price' => $new_price,
'price' => $price
];
}
Пошук в Строці:
$mystring = 'abc'; // Де шукаємо
$findme = 'a'; // Що шукаємо
$pos = strpos($mystring, $findme);
if ($pos !== false) {
echo "Строка '$findme' знайдена в строці '$mystring'";
echo " в позиції $pos";
} else {
echo "Строка '$findme' не знайдена в строці '$mystring'";
}
Як порівняти змінну із значенями в масиві?
//Використати функцію in_array
$chislo = 16;
if ( $chislo == in_array($chislo, array('4','16','22')) ){
echo "Таке число є в масиві";
}
1. Отримати останній знак
function lastZnak($sentence)
{
// простой способ извлечь последний символ
$lastChar = $sentence[-1];
return $lastChar;
}
2. Зробити всі url c https:
function normalizeUrl($url){
if (strpos($url, 'http://') === 0) {$domain = substr($url, 7);}
elseif (strpos($url, 'https://') === 0) {$domain = substr($url, 8);}
else {$domain = $url;}
return "https://{$domain}";
}
3. Дізнатися шлях до файлу або поточної папки (каталогу):
3.0 Як взнати корневу папку вашого сервера
$_SERVER["DOCUMENT_ROOT"]
3.1 Повертає ТІЛЬКИ папку в якій розміщений виконуваний файл
echo basename(getcwd());
3.2 Повертає повний шлях до папки в якій розміщений виконуваний файл
echo getcwd();
//или
echo dirname(__FILE__);
3.3 Повертає батьківський каталог
echo dirname($_SERVER['PHP_SELF']);
3.4 Поверне URI, який було надано для доступу до цієї сторінки
echo $_SERVER['REQUEST_URI'];
3.5 Поверне шлях до поточного файлу:
echo $_SERVER['PHP_SELF'];
//А така конструкція поверне лише назву файлу
echo basename($_SERVER['PHP_SELF']);
4. Переглянути усі доступні зміні, класи, функції:
Виводимо всі всі підключені класи та глобальні змінні $_POST, $_GET, $_COOKIE, $_FILES, $_SESSION, $_SERVER, $_ENV:
<?
print "<pre>--<br/>Виводимо Імена всіх підключених КЛАСІВ---<br/>";
print_r(get_declared_classes());
print "<pre>--<br/>Виводимо Імена всіх підключених КОНСТАНТ І ЇХ ЗНАЧЕНЬ---<br/>";
print_r(get_defined_constants());
print "<pre>--<br/>Виводимо Імена всіх підключених ЗМІН ---<br/>";
print_r(get_defined_vars());
print "--=====<br/>Виводимо всі ГЛОБАЛЬНІ змінні =======--- <br/>";
print_r($GLOBALS);
function_exists() // Повертає true, якщо вказана функція визначена
print "</pre>---<br/>";
die();
?>
Поширені операції з класами та методами
Звернення до статичного методу в класі можна виконати без створення екземпляру класу за допомогою ключового слова self.
class MyClass {
public static function methodA() {
echo "Hello from method A\n";
}
public static function methodB() {
echo "Hello from method B\n";
self::methodA(); // викликаємо метод A з методу B
}
}
MyClass::methodB(); // викликаємо метод B статично
Якщо обидва методи не є статичними, то вам потрібно створити об'єкт класу Р та викликати метод Б в контексті цього об'єкту. Приклад коду:
class R {
public function methodA() {
// Код метода A
}
public function methodB() {
// Код метода B
$this->methodA(); // Виклик методу A
}
}
$obj = new R();
$obj->methodB();
Якщо перший метод є звичайним (не статичним), а другий метод є статичним, то викликати звичайний метод з статичного метода необхідно через об'єкт класу.
class MyClass {
public function methodA() {
// some code
}
public static function methodB() {
$instance = new self();
$instance->methodA();
}
}
MyClass::methodB();
Як повністю видалити сесію та куки в РНР?
$cookies = $_COOKIE;
foreach ($cookies as $name => $value) {
setcookie($name, '', time() - 3600, '/');
}
session_start();
session_unset();
session_destroy();
Як перетворити картинку на base64?
$img_path = 'full-scw-1.png';
$img_data = base64_encode(file_get_contents($img_path));
echo 'dаta:image/png;base64,' . $img_data;
die();