PHP

PHP Сниппеты

Как найти, где находится функция php
$reflFunc = new ReflectionFunction('function_name');
print $reflFunc->getFileName() . ':' . $reflFunc->getStartLine();

Как найти, где находится класс в php
идентично верхнему коду, можно найти и местоположение любого не встроенного класса в php
$ref = new ReflectionClass('Application');
print $ref->getFileName() . ':' . $ref->getStartLine();

Как получить все методы у объекта или класса в php
print_r(get_class_methods($obj));

Как удалить папку с файлами или почистить папку с файлами
function cleanDirectory($dir, $remove = false) {
  if ($objs = glob($dir."/*")) {
    foreach($objs as $obj) {
      is_dir($obj) ? cleanDirectory($obj, true) : unlink($obj);
    }
  }
  if ($remove) {
    rmdir($dir);
  }
}

пользуемся так

Если нужно просто отчистить директорию то запускаем без второго параметра, если после очистки нужно еще и удалить ее то вторым параметром подаем true
cleanDirectory('/home/www/files/images'); // очистка
cleanDirectory('/home/www/files/images', true); // удаление

Как отдать на загрузку какой-либо файл на сервере с помощью php
универсальный загрузчик выглядит так
function download ($file) {
  if (!empty($file) and file_exists($file) and is_file($file)) {
    if (ob_get_level()) {
      ob_end_clean();
    }
 
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
     
    if ($fd = fopen($file, 'rb')) {
      while (!feof($fd)) {
        print fread($fd, 1024);
      }
      fclose($fd);
    }
  } else {
    header('HTTP/1.0 404 Not Found');
    echo 'File not found';
  }
  exit();
}

Сгенерировать строку из случайных символов
Часто надо сгененрировать случайную строку для соли или еще для чего
function generateHash ($length = 8){
  $password = "";
  $possible = "2346789bcdfghjkmnpqrtvwxyzBCDFGHJKLMNPQRTVWXYZ";
  $maxlength = strlen($possible);
  if ($length > $maxlength) {
    $length = $maxlength;
  }
  $i = 0;
  while ($i < $length) {
    $char = substr($possible, mt_rand(0, $maxlength-1), 1);
    if (!strstr($password, $char)) {
      $password .= $char;
      $i++;
    }
  }
  return $password;
}
Теги:
Сниппеты, snippets, reflectionfunction, getfilename
Добавлено: 03 Мая 2018 06:32:43 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...