😎 » PHP - FAQ » Найбільш поширені операції в PHP8
382 0  

Найбільш поширені операції в PHP8

Список найбільш часто потрібних частин коду для роботи з PHP8, список операцій.

- Операції з класами та методами:

- Видаляємо сесію та куки

- Перетворити img на 64base

// ВИДАЛЯЄМО ВСІ ШТМЛ теги крім:  <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();

Залишити свій коментар:

Досвід у веброзробці:

2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2009
2023