Этот пользователь уже заблокирован
$alreadyBlocked = 'name1|||name2|||name3|||';
$array = explode('|||', $alreadyBlocked);
$utc = $_POST['username'];
if ( in_array($utc, $array) ) {
// Пользователь уже заблокирован
}
foreach ($array as $name){ // разбираю
if($name === $utc){ // пробую так, но почему-то проверяется только первое имя из массива $array то есть только
name1, остальные будто игнорятся
echo json_encode(['error' => 'Этот пользователь уже заблокирован'], JSON_UNESCAPED_UNICODE);
-exit;
+//exit;
}
...
}
$data = [1,2,3,4,5,6,7,8,9];
$perPage = 2;
$page = $_GET['page'] ?? 1;
$count = $page * $perPage;
$display = array_slice($data, 0, $count);
foreach ($display as $item) {
echo '<div>'.$item.'</div>';
}
echo '<a href="index.php?page='.($page+1).'">Показать ещё</a>';
$login = $_POST['login'];
$hash = password_hash($_POST['password']);
$login = $_POST['login'];
$password = $_POST['password']; // не хешируем
SELECT * FROM users WHERE login = '$login'
if (password_verify($password, $hash_from_db)) {
// пользователь аутентифицирован
} else {
// пара логин/пароль неверная
}
из-за того, что открывающий тег <?php связывается не с закрывающим тегом ?>, а со знаком >,
public function getThumbnail($photo, $type = 'medium')
{
$p = pathinfo($photo);
return $p['dirname'].'/'.$type.'-'.$p['basename'];
}
echo getThumbnail('public/users/avatar.webp'); // public/users/medium-avatar.webp
echo getThumbnail('public/users/avatar.webp', 'crop'); // public/users/crop-avatar.webp
class Calc {
private $number = 0;
public function __construct($n){
$this->number = $n;
}
public function plus($n){
$this->number += $n;
return $this;
}
public function minus($n){
$this->number -= $n;
return $this;
}
public function result(){
return $this->number;
}
}
echo (new Calc(100))->plus(50)->minus(75)->result(); // 75
$webp = glob('*.webp');
$jpg = glob('*.jpg');
$gif = glob('*.gif');
// …тут отрезаем у всех расширения, или далее используем array_udiff со своим коллбеком сравнения
$result = array_diff($webp, $jpg, $gif);
foreach $result as $file {
unlink($file.'.webp')
}
// Читаем все файлы
$files = glob(__DIR__ . '/images/*.*');
// Фильтруем WEBP файлы в массив
$webp = array_filter($files, function ($f) {
return pathinfo($f, PATHINFO_EXTENSION) == 'webp';
});
// Фильтруем остальные картинки в другой массив
$other = array_filter($files, function ($f) {
$extensions = ['jpg', 'gif', 'png']; // Перечисляем, какие там еще файлы есть
return in_array(pathinfo($f, PATHINFO_EXTENSION), $extensions);
});
// В обоих массивах оставляем только имена файлов
$webp2 = array_map(function ($f) { return pathinfo($f, PATHINFO_FILENAME); }, $webp);
$other2 = array_map(function ($f) { return pathinfo($f, PATHINFO_FILENAME); }, $other);
// Вычисляем различия в массивах
$result = array_diff($webp2, $other2);
// Смотрим результат
foreach ($result as $file) {
var_dump($file.'.webp');
}
class BaseController {
protected $config;
public function __contruct(Config $config){
$this->config = $config;
}
}
class MyController extends BaseController {
public function myMethod() {
$var = $this->config->get('someSetting');
}
}
config()->get('someSetting');
config()
, доступную везде.