Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
При программировании на PHP иногда возникает необходимость узнать дату создания файла. Если вы программируете в Linux, то проблем особых нет - можно использовать системный вызов stat() или функцию filectime(). Но в Windows вызов stat() не работает. Для получения даты пришлось немного поработать руками и получилась функция filedate(), возвращающая дату создания файла:
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
KUBych (09:51:34 25/08/2006)
Денис, как реализовать загрузку ТОЛЬКО картинок на сервер?
dhsilabs (09:53:20 25/08/2006)
в сценарии проверяешь имя файла на сервере, если в ней присутствует строка .jpg .gif и т.д. то это картинка если нет - значит сообщение об ошибке
dhsilabs (09:53:26 25/08/2006)
это самый простой вариант
KUBych (09:53:51 25/08/2006)
нет. а там еще содержимое самого файла(внутренностей) как-то проверяется.
dhsilabs (09:53:52 25/08/2006)
более сложный - чтение заголовка файла и определение формата, если формат не подходит, значит это не картинка и сообщение об ошибке
dhsilabs (09:54:33 25/08/2006)
если нет JFIF JPEG - это не JPG
dhsilabs (09:54:37 25/08/2006)
и т.д.
KUBych (09:54:47 25/08/2006)
Ясно.
dhsilabs (09:54:57 25/08/2006)
погодь
dhsilabs (09:56:21 25/08/2006)
есть функции ImageCreateFromPng, FromJpg, FromGIF
dhsilabs (09:56:59 25/08/2006)
берешь файл из /tmp который уже загрузили на сервер но ты пока еще не копировал его в галерею и проверяешь этими функциями, которые в случае ошибки возвращают пустую строку
dhsilabs (09:57:16 25/08/2006)
если ни один формат не подходит значит ошибка
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
Задание следующее. Имеется каталог d:\images. В нем только картинки. Много картинок. Очень много. Есть каталог d:\cd. Нужно написать сценарий, который подготовит картинки для записи на CD. Сценарий должен создать каталоги D:\CD\CD1, CD2, CD3 и т.д. В эти каталоги он должен напихать картинок из d:\images. При этом картинки должны быть отсортированы по дате, например, в каталог d:\CD\CD1\25_08_2006 должны быть помещены картинки, созданные 25 августа 2006 года. Также сценарий должен учитывать размер CD = 640 Мб.
Писалось все для буржуев, поэтому комменты на английском.
Код:
<?
// Date of creation of a file
// In Windows we can not use function filectime: $C = filetime($d);
// Let's receive therefore date of a file by other way
function filedate($f)
{
exec("dir /4 $f",$FD);
$C = $FD[5];
$C = substr($C, 0, 10);
return $C;
}
// CDs nubmer
if (file_exists('cdn.txt')) $cdn = join('',file('d:\cdn.txt'));
// if file cdn.txt is empty, then CDs number = 1
if (strlen($cdn)===0) $cdn=1;
// Max capacity of CD in bytes (640 M)
$max_cap = 640 * 1024 * 1024;
Только что столкнулся с небольной проблемкой. Вдруг кому-то это тоже поможет:
Язык: PHP5
Проблема: gb2 + кириллица
Решение:
Я знал, что стандартно php кириллицу не поддерживает.
Поэтому с кириллицей лучше работать с использованием tty шрифтов, имеющих кириллитические символы.
Я, довольный, беру шрифт arialbd.tty(это полужирный arial) из каталога C:\Windows\Fonts и пишу небольшой скриптик(image.php):
Код:
$im = imagecreate(80, 18); // разрешение будущего текста-картинки
$grey = imagecolorallocate($im, 102,102,102); // серый цвет
imagettftext($im, 8,0,8,13,$grey,getcwd()."/extended/arialbd.ttf", $text); // пишем текст на картинке
Но я делаю рожу кирпичом и лезу в Интернет! Вот что я там(или здесь) нашел:
В PHP 5 функция imagettftext() воспринимает кодировку Unicode, но никак не Windows-1251.
Поэтому можно написать такую функцию прям в начале нашего скрипта(image.php):
Вот зазипованный сценарий с функцией, выводящей содержимое каталога со ВСЕМИ файлами и подпапками на любую глубину.
При выводе используются кпртинки.
Вызов функции:
Код:
include "tree.php";
tree(string $folder);
Использовал метод рекурсии. Посмотрите -- выглядит интересно
Распакуйте в папку /tree/
как передать параметры из одного сценария в другой?
в книге есть пример про голосования - 42 глава:
header("Location: poll_results.php?poll=$poll");
в примере всё нормально передается, у меня пишет ошибку
Код:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\practice\header.php:30) in C:\xampp\htdocs\practice\test\test_process.php on line 92
Зарегистрирован: 18.01.2009 Сообщения: 1365 Откуда: ua Кропивницкий
Цитата:
$id"
SID ? _________________ помощь в личку платно.Удалю вирус,шелл с сайта Джумла, Битрикс .
Создам плагин , модуль под заказ для VirtueMart , JoomShopping
нет, другой параметр -номер вопроса.
то есть я получаю $id в test_process.php из формы, далее обрабатываю там и хочу передать новое значение другому сценарию.
Зарегистрирован: 18.01.2009 Сообщения: 1365 Откуда: ua Кропивницкий
Цитата:
и хочу передать новое значение другому сценарию.
так открывай/подключай другой скрипт пхп,и получай значение/параметр из test_process.php ,который может в массиве или записанным в таблицу. _________________ помощь в личку платно.Удалю вирус,шелл с сайта Джумла, Битрикс .
Создам плагин , модуль под заказ для VirtueMart , JoomShopping
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах