-
PHP: FAQ
Вот решил заняться разработкой небольшого файлового менеджера на PHP.
Для получения файлов в директории используется scandir() (введен со времен PHP5). Только вот как просортировать массив scandir() так, чтоб он директории выдавал сначала, а потом только файлы? Сейчас он все выдает по алфавиту и все получается смешанным и довольно непонятным (особенно, если файлов и директорий сильно много). Кто может реально помочь, отзовитесь.
-
чтото мне подсказывает параметр context использовать
но не проще было бы PEAR гонять ?
-
в PEAR я к сожалению полный ноль...
-
а еще полезно читать пхп мануал )
посомтри что там снизу написано в форуме
php.net/scandir
-
[QUOTE=swast]а еще полезно читать пхп мануал )
посомтри что там снизу написано в форуме
php.net/scandir[/QUOTE]
так мануал у меня есть, там только про необязательный параметр sorting order только сказано. А он такого эффекта, какой надо не дает.
Еще вопрос: как реализовать загрузку файлов непосредственно в базу данных Mysql? Надо ли тип таблиц ставить в BINARY? И как потом получить доступ к этим файлам?
-
1. Можно и без scandir прекрасно все реализовать
2. Не нужно хранить в базе файлы, лучше только ссылки на них
3. Посмотри как устроены другие менеджеры, скриптов много. В помощь тебе phpclub.ru/talk, php.com.ua/forum, sitepoint.com, hotscripts.com и конечно же google
Кстати, первый же коммент в мануале по scandir показывает, как можно получить массив директорий и файлов. Потом можешь выводить их как тебе нравится :)
-
Срочно нужны php/mysql программисты!!! Может у кого-то есть знакомые.Присылайте Ваши резюме на англ.языке на [email][email protected][/email]
[url]www.vtronline.net[/url]
-
[QUOTE=commando]1. Можно и без scandir прекрасно все реализовать
2. Не нужно хранить в базе файлы, лучше только ссылки на них
3. Посмотри как устроены другие менеджеры, скриптов много. В помощь тебе phpclub.ru/talk, php.com.ua/forum, sitepoint.com, hotscripts.com и конечно же google
Кстати, первый же коммент в мануале по scandir показывает, как можно получить массив директорий и файлов. Потом можешь выводить их как тебе нравится :)[/QUOTE]
спасибо, уже сам разобрался.
просто надо было использовать 2 цикла foreach для массива scandir():
в первом отображаются ТОЛЬКО директории в алфавитном порядке (is_dir());
во втором отображаются ТОЛЬКО файлы в алфавитном порядке (!is_dir() или is_file());
на счет файлов в БД:
как тогда работает система загрузки вложений на этом форуме? ведь все грузится непосредственно в базу...
-
[QUOTE=V.T.R.]Срочно нужны php/mysql программисты!!! Может у кого-то есть знакомые.Присылайте Ваши резюме на англ.языке на [email][email protected][/email]
[url]www.vtronline.net[/url][/QUOTE]
еще только учусь...
а что надо спрограммировать?
-
[QUOTE=V.T.R.]Срочно нужны php/mysql программисты!!! Может у кого-то есть знакомые.Присылайте Ваши резюме на англ.языке на [email][email protected][/email]
[url]www.vtronline.net[/url][/QUOTE]
<< Мы работаем ежедневно с 8.30 утра до 22.00 вечера без выходных
Какаой КАМИКАДЗЕ к Вам пойдет работать?
-
[QUOTE=pavlentus]<< Мы работаем ежедневно с 8.30 утра до 22.00 вечера без выходных
Какаой КАМИКАДЗЕ к Вам пойдет работать?[/QUOTE]
это такое на сайте написано? (не могу посмотреть, т.к. доступа нема).
-
[QUOTE=NoXX]это такое на сайте написано? (не могу посмотреть, т.к. доступа нема).[/QUOTE]
Как не смешно но факт. :search:
-
а как узнать, сколько времени выполнялся скрипт?
в мануале нашел set_time_limit(), но он только ограничивает время выполнения...
-
[QUOTE=NoXX]а как узнать, сколько времени выполнялся скрипт?
в мануале нашел set_time_limit(), но он только ограничивает время выполнения...[/QUOTE]
очень просто. берёшь дату в милисекундах в начале скрипта. потом её же в понце скрипта. разница твоё время в милисекундах. помойму в php есть что-то типа microtimer.
пример на java. В принципе на php что-то подобное
long first = (new Date()).getTime();// это в начале
long second = (new Date()).getTime();// это в конце
out.println(((double)(second-first))/1000);// это выводит время в секундах
надеюсь помог.
точно не скажу, но в настройках php выставляется время по истечении которого скрипт аварийно закрывается.
А по поводу конторы - так они и в выходные работают :rzhu_nimagu:
а еще они занимаются [QUOTE]Сборка компьютеров от произв[COLOR="Red"]а[/COLOR]дителя[/QUOTE]
-
с предыдущей проблемой кое-как разобрался, но вот новая:
нужно измерить скорость соединения путем определения времени закачки файла на комп клиента.
есть такой код:
[php]<title>Тест скорости соединения</title>
<form name="form1" method="post" action="speed.php">
<h3 align="center">
<h3 align="center">Тест скорости соединения (download speed)</h3>
<p align="center"><span style="font-size:10pt;"><font face="Verdana">Выберите размер тествого файла: </font></span><select name="size" size="1">
<option selected value="256">256 kb</option>
<option value="512">512 kb</option>
</select></p>
<p align="center"><input type="submit" name="formbutton1" value="Принять!"></p>
</form>
<?php
if($_POST['size'] == '256')
{
$usec1 = microtime(1);
readfile("test256k");
$usec2 = microtime(1);
$exec_time = $usec2-$usec1;
$size_in_kbit = 2048;
$size_in_kb = 256;
$speed_in_kbits = $size_in_kbit/($exec_time/1000000);
$speed_in_kbs = $size_in_kb/($exec_time/1000000);
ob_start();
echo "Ваш IP: {$_SERVER['REMOTE_ADDR']}<br><br>";
echo "Размер тестового файла = 256 КБайт.<br>";
echo "СКОРОСТЬ (kb/s) = ", bcpow($speed_in_kbs, 1, 2), "<br>";
echo "СКОРОСТЬ (kbit/s) = ", bcpow($speed_in_kbits, 1, 2), ".";
}
elseif($_POST['size'] == '512')
{
$usec1 = microtime(1);
readfile("test512k");
$usec2 = microtime(1);
$exec_time = $usec2-$usec1;
$size_in_kbit = 4096;
$size_in_kb = 512;
$speed_in_kbits = $size_in_kbit/$exec_time;
$speed_in_kbs = $size_in_kb/$exec_time;
echo "Ваш IP: {$_SERVER['REMOTE_ADDR']}<br><br>";
echo "Размер тестового файла = 512 КБайт.<br>";
echo "СКОРОСТЬ (kb/s) = ", bcpow($speed_in_kbs, 1, 2), "<br>";
echo "СКОРОСТЬ (kbit/s) = ", bcpow($speed_in_kbits, 1, 2), ".";
}
?>[/php]
, но он пихает этот бинарный файл (test256k или test512k) в браузер, что абсолютно не нужно. Функции очищения буфера вывода ессно не помогают, а при использовании других функций получения файла скорость выходит около 10~700 МБ/сек и это через IrDA... кто может реально помочь - отзовитесь...
-
я смотрю, сегодня все программеры отдыхают...
-
и такой вопрос - какой посоветуете небольшой бесплатный PHP-редактор, чтоб был с хорошей подсветкой кода и всякими другими прибомбасами (для Винды ессно)(Dreamweaver не предлагать - сильно тормозит)?
-
PHP - редактор...Eclipse.
-
PHP Designer 2007 как вариант.
-
Вложений: 1
в приложении скрипт на javaScript. им можно загрузить с броузера страницу с сервера. Как потом вернуть данные о скорости хз.
ИМХО лучше делать измерение скорости на стороне клиенте.
ЗЫ Всех с НГ.
ЗЫЫ хотя этот явовский скрипт выбирает всю инфу в переменную. Если отобразить только последние н-ное количество байт то будет нахис.