БлогNot. Самые маленькие полезные скрипты на PHP :)

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

Самые маленькие полезные скрипты на PHP :)

Удивительно, что такие "базовые" вопросы вообще задают, уже якобы изучив весь PHP вплоть до классов и шаблонов... но ведь задают :)

Возможна, заметка ещё будет пополняться примерами очень маленьких, но полезных скриптов на PHP. Об установке программного обеспечения, нужного для работы с PHP, написано в этой статье.

1. Как посмотреть все настройки PHP на моём сервере?

Выполнить на нём следующий файл:

<?php
 phpinfo();
?>

2. А как посмотреть все серверные переменные?

Выполните на сервере этот скрипт:

<?php
 foreach ($_SERVER as $k=>$v) echo "\n<br><b>$k=</b>".$v;
?>

3. Можно ли не писать отдельно обработку для данных GET и POST?

Напишите её для массива $_REQUEST. Ещё и cookie включает :)

4. Как вывести сегодняшний день недели по-русски, стандартная функция date не понимает локали?

<?php
 $w = Array('Вс','Пн','Вт','Ср','Чт','Пт','Сб');
 echo $w[date('w')];
?>

5. Как показать текущие дату и время на сервере?

<?php
 echo date('d.m.Y, H:i');
?>

6. Как определить IP-адрес посетителя?

<?php
 echo getenv('REMOTE_ADDR');
?>

Это в простейшем случае. А более грамотно - как вот тут в function get_ip.

7. Как генерировать случайные числа?

Если целые в заданных пределах, например, от 1 до 100 включительно, то

<?php
 echo rand(1,100);
?>

8. А если нужны вещественные случайные числа?

<?php
 echo mt_rand() / mt_getrandmax();
?>

Получим вещественные равномерно распределённые числа от 0 до 1. Ну а масштабировать в любой другой диапазон легко, например, в [-5;5]:

<?php
 $a0 = mt_rand() / mt_getrandmax();
 $min = -5;
 $max = 5;
 $a = $min + $a0*($max-$min);
 echo $a;
?>

9. Как отсканировать папку на сервере?

<?php
 $array = scandir('.');
 //здесь сканируется текущая папка (ссылка на неё - одной точкой)
 echo '<pre>';
 print_r($array);
 echo '</pre>';
?>

10. Как узнать имя файла скрипта? Как узнать размер файла?

2 ответа в одной строке :)

<?php
 echo filesize($_SERVER['SCRIPT_FILENAME']).' байт';
?>

11. Как скачать файл скриптом?

<?php
 $filename = 'data.zip';  //имя файла для скачивания
 $filefolder = 'folder/'; //имя папки
 $filesize = filesize($filefolder.$filename);
 header('HTTP/1.1 200 OK');
 header('Connection: close');
 header('Content-Type: application/octet-stream');
 header('Accept-Ranges: bytes');
 header('Content-Disposition: attachment; filename='.$filename);
 header('Content-Length: '.$filesize);
 readfile($filefolder.$filename);
?>

Здесь скачивается файл data.zip из папки на сервере folder, но пользователь не видит пути к файлу. В нашем случае для домена domain.com это путь http://domain.com/folder/file.zip

Также не стоит забывать о возможности защиты папок от просмотра с помощью файла .htaccess

12. Как отобразить чужой сайт/документ?

<?php
 echo file_get_contents('http://google.com');
?>

13. Как показать пользователю адрес своего сайта?

<?php
 echo 'Вы находитесь на сайте '.$_SERVER['HTTP_HOST'];
?>

14. Как случайно "перемешать" элементы массива?

Для этой цели, как и для многих других типовых действий с массивами, в PHP есть готовые функции.

<?php
 $items = array (1,2,3,4,5);
 shuffle ($items);
 print_r ($items);
?>

15. Как получить/изменить время доступа или модификации файла?

<?php
$filename = 'input.txt';
$mtime = filemtime($filename); //получить время изменения файла
touch($filename,
      time(), //установить время изменения в текущее
      fileatime($filename)); //оставить время доступа неизменным
?>

Существенно, что touch создаст файл, если он не существует.

16. Как сделать замену (модификацию) строк во множестве текстовых файлов?

Если файлы лежат в папке, которую можно задать указанием пути и маски, удобна preg_replace_callback:

<?php
foreach (glob("./*.txt") as $filename) {
 $file = file_get_contents($filename);
 file_put_contents ($filename, 
  preg_replace_callback("/([a-zA-Z]+)/",
                        function ($matches) { return strtoupper($matches[0]); },
                        $file));
}
?>

Здесь мы делаем большими все латинские буквы в файлах *.txt из текущей папки скрипта.

17. Как прочитать содержимое файла построчно?

<?php
$file = fopen(__FILE__, 'r');
while ($line = fgets($file)) {
    $line = rtrim($line);
    echo htmlspecialchars($line)."<br>\n";
}
?>

Здесь файл выводит в браузер сам себя, а можно, конечно, и другой файл:

<?php
$file = fopen('input.txt', 'r');
while (!feof($file)) { 
 $line = rtrim(fgets($file));
 if ($line) echo (htmlspecialchars($line)."<br>\n");
}
?>

При этом выводе мы дополнительно игнорируем пустые строки.

18. Как переименовать файл?

<?php
 rename('input.txt', 'output.txt');
?>

Ну и другие типовые файловые операции похожи на C/C++.

19. Как безопасно создать временный файл с уникальным именем?

<?php
 $f = tmpfile();
 //работа с файлом $f:
 fwrite ($f, 'abracadabra');
 fseek ($f, 0);
 echo fread ($f, 1024);
 fclose($f); //будет удалён при закрытии
?>


теги: php программирование список

комментарии (1)

21.05.2012, 13:37; рейтинг: 8269

  свежие записипоиск по блогукомментироватьстатистика

Наверх Яндекс.Метрика
© PerS
вход