<?php function gen_pw($lenght){ $alphabet = range('a','z'); $up_alphabet = range('A','Z'); $digits = range('1','9'); $full_array = array_merge($alphabet,$up_alphabet,$digits); $password = ''; for($i='0'; $i < $lenght; $i++){ $entrie = array_rand($full_array); $password .= $full_array[$entrie]; } return $password; } $pw = gen_pw('8'); echo $pw; ?>
PHP язык не такой многословный и извилистый как Perl, но тоже любит поболтать. Сегодня поговорим о работе с директориями. В PHP существует для этого 3 стандартных способа.
Читать дальше »
Заголовок X-Powerd-By в ответе веб сервера показывает не совсем безопасную информацию, а именно полную версию PHP.
Прячется он очень просто:
достаточно изменить следующее в php.ini
; Decides whether PHP may expose the fact that it is installed on the server ; (e.g. by adding its signature to the Web server header). It is no security ; threat in any way, but it makes it possible to determine whether you use PHP ; on your server or not. expose_php = On
на
expose_php = Off
После этого, если используете mod_php, сделайте reload веб серверу.
Недавно возникла небольшая проблема с бэкапом базы MySQL, с огромными таблицами, которые лочились при mysqldump (это необходимо, дабы сохранить целостность резервной копии)
В голову пришло следующие решение, которое возможно если база размещена на LVM:
следующее происходит без останова БД:
1. Создаётся снэпшот ФС с базами MySQL (чтобы бэкапить неизменяемые данные . Это ключевой момент )
2. Монтируем этот снэпшот
3. Тарим все директории с базами
4. Размонтируем и удаляем снэпшот
Потом забираем архивы любым удобным для вас средством и удаляем
Скрипт ниже
Читать дальше »
Случается, что нужно распаковать залитый на веб-сервер по FTP архив, если делать это с десктопа, то процедура получается аналогичной заливке распакованных файлов. Чтобы решить эту проблему дарю вам этот PHP скрипт. Для его работы на сервере должен стоять unzip, и разрешено использование встроенной функции exec (скрипт это всё проверит).
Чтобы воспользоваться им, размещаем скрипт, например с именем unzip.php, в той же директории где расположен архив или даже несколько архивов
<?php if(!function_exists('exec')) die('exec function is not available on this server'); if(!$unzip_command = exec('/usr/bin/which unzip')) die(); if(!$dir_handle = opendir(getcwd())) die ('Can\'t open dir'); while(false != ($files = readdir($dir_handle))){ if($files != '.' && $files != '..'){ if(preg_match('/.\.zip/',$files)){ exec("$unzip_command $files",$output); echo '<b>Unzipping ',$files,' </b><br>'; foreach($output as $unzipped_files) echo "$unzipped_files",'<span style="color: green"> done!</span><br>'; } } } ?>
Скрипт на PHP для тех, кто часто забывает пароль администратора в панель администрирования CMS Joomla. Просто залейте его на сервер в директорию /administrator/ (например с именем pw.php) и откройте в браузере http://example.com/administrator/pw.php. Новый пароль придет на электронную почту администратора Joomla
Читать дальше »
$ set +o noclobber $ echo something > my.file $ echo some more > my.file $ set -o noclobber $ echo something > my.file bash: my.file: cannot overwrite existing file $ echo some more >> my.file $
$ echo something > my.file $ set -o noclobber $ echo some more >| my.file $ cat my.file some more $ echo once again > my.file bash: my.file: cannot overwrite existing file $
Многие современные дистрибутивы Linux уже имеют при себе какую-то утилиту для регулировки яркости монитора в ноутбуке. Но поставив Slackware c KDE 3.5.10 , я такого устройства не обнаружил (может плохо искал). Пришлось получать удовольствие от написания небольшого скрипта, который теперь отлично справляется с яркостью.
Запускается и выполняется из консоли, что гораздо удобнее чем настраивать яркость тачпадом, а так же не зависит от того какое DE Вы используете.
Читать дальше »
Если у Вас появится задача найти файл в заданном каталоге на сервере через броузер, можете воспользоваться этой шпаргалкой
1 2 3 4 5 6 7 8 9 10 11 | <?php $dir = '/opt/data/srv/www/php'; $handle = opendir($dir); if($handle){ while(true == ($dir = readdir($handle))){ if($dir!='.' && $dir!='..') f(strpos($dir, $_GET['search']) == true) echo $dir,'<br>',"n"; } } ?> |
$_GET['search'] – может содержать любой символ из имени файла
В PHP , как и в многих других языках, есть замечательная возможность создавать динамические функции. Найти применение этому, я надеюсь, Вы сможете… :)