Здравствуйте друзья, имеется сайт на WordPress на сайте установлен плагин WP-RECALL - плагин личного кабинета пользователя. Для данного плагина был написан скрипт который в корне сайта заходит в каталог www/_doc/(в данном каталоге находятся файлы отчетов пользователей в основном это pdf, jpg, doc), открывает каталог имя которого идентично имени пользователя и выводит содержимое каталога в виде списка (list). Содержимое скрипта для WP-RECALL: PHP: <?php add_action('init','add_tab_my_report_files'); add_action('init','add_tab_my_report_files'); function add_tab_my_report_files(){ rcl_tab('myform','my_report_files_recall_block','Мои отчеты',array('public'=>0,'class'=>'fa-file-text-o','order'=>20)); } function my_report_files_recall_block($user_lk){ global $current_user; get_currentuserinfo(); $user_login = '' . $current_user->user_login; $dir = '_doc/'.$user_login.'/'; $type_files = substr("$filename", -4); // возвращает "дату" $list = glob($dir.$user_login.'_*.*'); $links = array (); foreach( $list as $file_path){ $filename = basename($file_path); $rest = substr("$filename", -14, 14); // Начало отображения имени с 14 символа от конца, и отображать 14 символов //$links[] = "<a href=\"http://www.sto.sumy.ua/_doc/$user_login/".$filename."\" target=\"_blank\">".$rest."<a>"; $links[] = "<a href=\"http://testgoldauto.com/_doc/$user_login/".$filename."\" target=\"_blank\">".$rest."</a> <a href=\"testgoldauto.com/_doc/$user_login/".$filename."\" download><i class=\"fa fa-download fa-2x\" aria-hidden=\"true\" ></i></a>"; } $preserved = array_reverse($links, true); return implode ('<br>',$preserved); } Визуально итоги работы скрипта выглядят вот так: Теперь самое интересное, как отобразить в списке файлов только первые 10 штук, а остальные скрыть в спойлер и разбить на 4 колонки? Я это вижу так: В обычном режиме отображается 10 файлов а в низу отображается спойлер с надписью "Показать старые отчеты" Как-то так: Когда пользователь нажимает на спойлер отображается четыре колонки с старыми файлами отчетов общее колличество которых поделено на 4 колонки. Как-то так:
Хм... у меня не получается не то что разбить на четыре колонки а даже настроить вывод диологового окна для загрузки файлов. Вот нашел скрипт php отвечающий за диалоговое окно загрузки файлов: https://php.ru/manual/function.readfile.html Пример #1 Форсирование скачки с помощью readfile() PHP: <?php $file = 'monkey.gif'; if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); readfile($file); exit; } ?> Вот мой код: PHP: <?php add_action('init','add_tab_my_report_files'); add_action('init','add_tab_my_report_files'); function add_tab_my_report_files(){ rcl_tab('myform','my_report_files_recall_block','Мои отчеты',array('public'=>0,'class'=>'fa-file-text-o','order'=>20)); } function my_report_files_recall_block($user_lk){ global $current_user; get_currentuserinfo(); $user_login = '' . $current_user->user_login; $dir = '_doc/'.$user_login.'/'; $type_files = substr("$filename", -4); // возвращает "дату" $list = glob($dir.$user_login.'_*.*'); $links = array (); foreach( $list as $file_path){ $filename = basename($file_path); $rest = substr("$filename", -14, 14); // Начало отображения имени с 14 символа от конца, и отображать 14 символов //$links[] = "<a href=\"http://www.sto.sumy.ua/_doc/$user_login/".$filename."\" target=\"_blank\">".$rest."<a>"; $links[] = "<a href=\"http://testgoldauto.com/_doc/$user_login/".$filename."\" target=\"_blank\">".$rest."</a> <a href=\"testgoldauto.com/_doc/$user_login/".$filename."\" download><i class=\"fa fa-download fa-2x\" aria-hidden=\"true\" ></i></a>"; } //$file = ($dir.$user_login.'_*.*'); if (file_exists($filename)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($filename)); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($filename)); readfile($filename); exit; } $preserved = array_reverse($links, true); return implode ('<br>',$preserved); } Я что-то явно делаю не так, подскажите пожалуйста что именно.
@dydaevskiy чтобы в коде разобраться там сильно знаний не нужно, просто много времени уходит на нудное проектирование и тестирование, мало кто этим хочет заниматься. По этому всё в твоих руках. Главное точно знать что хочешь реализовать. Без этого сложно что-то сделать. Ну а код написать уже просто, вот ты сам и readfile нашёл, таким образом тут подскажут и функции и принципы реализации, главное очень просто описать что хочешь получить в итоге, какой результат.
Денис спасибо, я только начинаю учить PHP более менее сносно знаю css и html, но PHP для меня это новая совершенно не изведанная вселенная. Вот у меня на самом деле в масштабе php программирования достаточно не большие проектировки но блин уходит столько время что б найти вставить проверить запустить оттестить. Ужас. Я понимаю что программирование само по себе далеко не быстрое ремесло. Но не ужели так будет все время на пути программированая?
Будет быстро если ты будешь решать однотипные задачи. Ну и уникальные тоже быстро будут получаться. Главное основы понять, как всё работает и взаимодействует, по этому с 7 класса в школе преподают информатику обычно. Читай книги для начинающих, зная теорию и имея практику с книг, будешь быстрее понимать.
Не получается реализовать загрузку файлов в диалоговом окне браузера, дайте хотя б намек где мой косяк. Функция которую не получается организовать заключена в блоке /*РЕАЛИЗАЦИЯ ДИАЛОГОВОГО ОКНА ЗАГРУЗКИ ФАЙЛА В БРАУЗЕРЕ*/ Вот мой HELL: PHP: <?php /*Вывод ошибок для отладки на экран*/ ini_set('display_errors',1); error_reporting(E_ALL); /*Конц вывода ошибок для отладки на экран*/ /*Добавление новой вкладки в WP-RECALL*/ add_action('init','add_tab_my_report_files'); /*Функция добавления*/ function add_tab_my_report_files(){ /*Внешний вид новой вкладки иконка, тайтл*/ rcl_tab('myform','my_report_files_recall_block','Мои отчеты',array('public'=>0,'class'=>'fa-file-text-o','order'=>20)); } /*Содержимое вкладки и место отображения контента - $user_lk*/ function my_report_files_recall_block($user_lk){ /*WordPress захват логина пользователя*/ global $current_user; get_currentuserinfo(); $user_login = '' . $current_user->user_login; /* END WordPress захват логина пользователя*/ /*Входим в каталог _doc за тем в подкаталог имя которого соответствует логину пользователя*/ $dir = '_doc/'.$user_login.'/'; /*Загоняем в переменную $list весь список файлов который находится в каталоге и подкаталоге*/ $list = glob($dir.$user_login.'_*.*'); /*Создаем пустой массив в который далее будет добавлен весь список файлов*/ $links = array (); /*Добавлем список файлов из подкаталога с логином пользователя в пустой массив*/ foreach( $list as $file_path){ $filename = basename($file_path); /*Начало отображения имени файла с 14 символа от конца, и отображать 14 символов*/ $rest = substr("$filename", -14, 14); //$links[] = "<a href=\"http://www.sto.sumy.ua/_doc/$user_login/".$filename."\" target=\"_blank\">".$rest."<a>"; /*Создаем маску для кнопки загрузки файлов*/ $download = "<a href=\"testgoldauto.com/_doc/$user_login/".$filename."\" download><i class=\"fa fa-download fa-2x\" aria-hidden=\"true\" ></i></a>"; /*РЕАЛИЗАЦИЯ ДИАЛОГОВОГО ОКНА ЗАГРУЗКИ ФАЙЛА В БРАУЗЕРЕ*/ $file = ($dir.$user_login.'_*.*'); if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); readfile($file); exit; } /* END РЕАЛИЗАЦИЯ ДИАЛОГОВОГО ОКНА ЗАГРУЗКИ ФАЙЛА В БРАУЗЕРЕ*/ /*Добавляем в пустой массив список файлов по указанной в переменной маске*/ $links[] = "<a href=\"http://testgoldauto.com/_doc/$user_login/".$filename."\" target=\"_blank\">".$rest."</a> ".$download." "; } /*Реверсируем список файлов в обратном порядке*/ $preserved = array_reverse($links, true); /*Отображаем в основное содержимое полученый список файлов в обратном порядке*/ return implode ('<br>',$preserved); } Что нужно осуществить: При нажатии на данную кнопку Должно появится диалоговое окно браузера загрузки файлов и оно появляется Но при сохранении файлов происходит ошибка, то есть файлы тупо не сохраняются
посмотри через fiddler или wireshark что ты отправляешь в браузер, это и есть отладка, откуда мы знаем в чём проблема, а вот у тебя всё есть чтобы самому выяснить
Логи OpenServer: Код (Text): [17-Jun-2016 08:11:48 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at D:\OpenServer\domains\testgoldauto.com\wp-content\themes\ds-orao\header.php:2) in D:\OpenServer\domains\testgoldauto.com\wp-content\plugins\wp-recall\add-on\files\index.php on line 44 [17-Jun-2016 08:11:48 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at D:\OpenServer\domains\testgoldauto.com\wp-content\themes\ds-orao\header.php:2) in D:\OpenServer\domains\testgoldauto.com\wp-content\plugins\wp-recall\add-on\files\index.php on line 45 [17-Jun-2016 08:11:48 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at D:\OpenServer\domains\testgoldauto.com\wp-content\themes\ds-orao\header.php:2) in D:\OpenServer\domains\testgoldauto.com\wp-content\plugins\wp-recall\add-on\files\index.php on line 48 [17-Jun-2016 08:11:48 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at D:\OpenServer\domains\testgoldauto.com\wp-content\themes\ds-orao\header.php:2) in D:\OpenServer\domains\testgoldauto.com\wp-content\plugins\wp-recall\add-on\files\index.php on line 72 [17-Jun-2016 08:11:48 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at D:\OpenServer\domains\testgoldauto.com\wp-content\themes\ds-orao\header.php:2) in D:\OpenServer\domains\testgoldauto.com\wp-content\plugins\wp-recall\add-on\files\index.php on line 73 [17-Jun-2016 08:11:48 UTC] PHP Warning: readfile(_doc/admin/): failed to open stream: No such file or directory in D:\OpenServer\domains\testgoldauto.com\wp-content\plugins\wp-recall\add-on\files\index.php on line 76 На сколько я понял скрипт не может изменить хедер так как информация о хедере уже добавлена. Я может что- то не понял но мне казалось что хедер имелся ввиду в мета данных сохраняемого документа.
Нашел интересное решение по данной ссылке Привожу текст из статьи: СПОСОБ №2. PHP СКРИПТ! Бывает хостер загоняет нас в условия, когда мы особо не можем управлять настройками сервера используя .htaccess (увы и ах, это бывает очень часто) приходится выкручиваться скриптовыми решениями, а именно: PHP: $filename = $_GET['filename']; // нужен для Internet Explorer, иначе Content-Disposition игнорируется if(ini_get('zlib.output_compression')) ini_set('zlib.output_compression', 'Off'); $file_extension = strtolower(substr(strrchr($filename,"."),1)); if( $filename == "" ) { echo "ОШИБКА: не указано имя файла."; exit; } elseif ( ! file_exists( $filename ) ) // проверяем существует ли указанный файл { echo "ОШИБКА: данного файла не существует."; exit; }; switch( $file_extension ) { case "pdf": $ctype="application/pdf"; break; case "exe": $ctype="application/octet-stream"; break; case "zip": $ctype="application/zip"; break; case "doc": $ctype="application/msword"; break; case "xls": $ctype="application/vnd.ms-excel"; break; case "ppt": $ctype="application/vnd.ms-powerpoint"; break; case "mp3": $ctype="audio/mp3"; break; case "gif": $ctype="image/gif"; break; case "png": $ctype="image/png"; break; case "jpeg": case "jpg": $ctype="image/jpg"; break; default: $ctype="application/force-download"; } header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private",false); // нужен для некоторых браузеров header("Content-Type: $ctype"); header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" ); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".filesize($filename)); // необходимо доделать подсчет размера файла по абсолютному пути readfile("$filename"); exit(); Все что вам нужно это создать на сервере пхп файл, к примеру, с именем: filesave.php и вставить туда данный скрипт. А ссылка на загружаемый файл должна выглядеть следующим образом: 1 <a href="filesave.php?filename=file.pdf">Скачать</a> Надеюсь данная строка не требует от меня пояснений. После этого все ваши файлы будут напрямую загружаться на компьютер. Что касается скрипта, то понятное дело, желательно его использовать если вы хоть немного понимаете, что там написано, иначе без кучи косяков и вопросов «Ну почему оно не работает!» не обойтись. Поэтому сами решайте использовать данный способ или тот, который описан ниже. ======================================================================== Я создал файл filesave.php И изменил свой код PHP: <?php /*Вывод ошибок для отладки на экран*/ ini_set('display_errors',1); error_reporting(E_ALL); /*Конц вывода ошибок для отладки на экран*/ /*Добавление новой вкладки в WP-RECALL*/ add_action('init','add_tab_my_report_files'); /*Функция добавления*/ function add_tab_my_report_files(){ /*Внешний вид новой вкладки иконка, тайтл*/ rcl_tab('myform','my_report_files_recall_block','Мои отчеты',array('public'=>0,'class'=>'fa-file-text-o','order'=>20)); } /*Содержимое вкладки и место отображения контента - $user_lk*/ function my_report_files_recall_block($user_lk){ /*WordPress захват логина пользователя*/ global $current_user; get_currentuserinfo(); $user_login = '' . $current_user->user_login; /* END WordPress захват логина пользователя*/ /*Входим в каталог _doc за тем в подкаталог имя которого соответствует логину пользователя*/ $dir = '_doc/'.$user_login.'/'; /*Загоняем в переменную $list весь список файлов который находится в каталоге и подкаталоге*/ $list = glob($dir.$user_login.'_*.*'); /*Создаем пустой массив в который далее будет добавлен весь список файлов*/ $links = array (); /*Добавлем список файлов из подкаталога с логином пользователя в пустой массив*/ foreach( $list as $file_path){ $filename = basename($file_path); /*Начало отображения имени файла с 14 символа от конца, и отображать 14 символов*/ $rest = substr("$filename", -14, 14); //$links[] = "<a href=\"http://www.sto.sumy.ua/_doc/$user_login/".$filename."\" target=\"_blank\">".$rest."<a>"; /*Создаем маску для кнопки загрузки файлов*/ //$download = "<a href='filesave.php?'\"testgoldauto.com/_doc/$user_login/".$filename."\" download><i class=\"fa fa-download fa-2x\" aria-hidden=\"true\" ></i></a>"; include "\filesave.php"; $download = "<a href="filesave.php?$filename">Скачать</a>"; /*РЕАЛИЗАЦИЯ ДИАЛОГОВОГО ОКНА ЗАГРУЗКИ ФАЙЛА В БРАУЗЕРЕ*/ //<a href="filesave.php?filename=file.pdf">Скачать</a> /* END РЕАЛИЗАЦИЯ ДИАЛОГОВОГО ОКНА ЗАГРУЗКИ ФАЙЛА В БРАУЗЕРЕ*/ /*Добавляем в пустой массив список файлов по указанной в переменной маске*/ $links[] = "<a href=\"http://testgoldauto.com/_doc/$user_login/".$filename."\" target=\"_blank\">".$rest."</a> ".$download." "; } /*Реверсируем список файлов в обратном порядке*/ $preserved = array_reverse($links, true); /*Отображаем в основное содержимое полученый список файлов в обратном порядке*/ return implode ('<br>',$preserved); } Я упорно чего-то не понимаю, не загружается файл и все.
функцию readfile(_doc/администратора/): не удалось открыть поток: нет такого файла или каталога Но такой каталог есть
Иcпользуй FileReader для отправки на сервер, а на сервере функцию move_uploaded_file Сейчас уже не то, что раньше... - не стоит возвращаться к старым механизмам, уже вовсех поддержка последних версий и без обнов никуда
что значит каталог? ты должен указать путь к файлу! и могут быть проблемы с русскими символами в пути
Денис вот эта строка моего ответа: функцию readfile(_doc/администратора/): не удалось открыть поток: нет такого файла или каталога Это просто итог перевода логов из яндекс переводчика. Естественно не каких русских каталогов и подкаталогов не использую Продолжаю рыть в поисках траблы. --- Добавлено --- Ухты... Спасибо! РОЮ дальше. Ребята всем огромное спасибо что тратите на меня Ваше время.
Разобрался (правда в IE не срабатывает диалоговое окно, просто открывается файл) Вот рабочий код: Код (Text): <?php //Вывод ошибок для отладки на экран //ini_set('display_errors',1); //error_reporting(E_ALL); //Конц вывода ошибок для отладки на экран //Добавление новой вкладки в WP-RECALL add_action('init','add_tab_my_report_files'); //Функция добавления function add_tab_my_report_files(){ //Внешний вид новой вкладки иконка, тайтл rcl_tab('myform','my_report_files_recall_block','Мои отчеты',array('public'=>0,'class'=>'fa-file-text-o','order'=>20)); } //Содержимое вкладки и место отображения контента - $user_lk function my_report_files_recall_block($user_lk){ //WordPress захват логина пользователя global $current_user; get_currentuserinfo(); $user_login = '' . $current_user->user_login; // END WordPress захват логина пользователя //Входим в каталог _doc за тем в подкаталог имя которого соответствует логину пользователя $dir = '_doc/'.$user_login.'/'; //Загоняем в переменную $list весь список файлов который находится в каталоге и подкаталоге $list = glob($dir.$user_login.'_*.*'); //Создаем пустой массив в который далее будет добавлен весь список файлов $links = array (); //Добавлем список файлов из подкаталога с логином пользователя в пустой массив foreach( $list as $file_path){ $filename = basename($file_path); //Начало отображения имени файла с 14 символа от конца, и отображать 14 символов $rest = substr("$filename", -14, 14); //$links[] = "<a href=\"http://www.sto.sumy.ua/_doc/$user_login/".$filename."\" target=\"_blank\">".$rest."<a>"; //Создаем маску для кнопки загрузки файлов $download = "<a href=\"http://testgoldauto.com/_doc/$user_login/".$filename."\" download><i class=\"fa fa-download fa-2x\" aria-hidden=\"true\" ></i></a>"; //$download = "<a href=\"testgoldauto.com/_doc/$user_login/".$filename."\" download><i class=\"fa fa-download fa-2x\" aria-hidden=\"true\" ></i></a>"; //Добавляем в пустой массив список файлов по указанной в переменной маске $links[] = "<a href=\"http://testgoldauto.com/_doc/$user_login/".$filename."\" target=\"_blank\">".$rest."</a> ".$download." "; } //РЕАЛИЗАЦИЯ ДИАЛОГОВОГО ОКНА ЗАГРУЗКИ ФАЙЛА В БРАУЗЕРЕ $file = ($filename); if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); readfile($file); exit; } // END РЕАЛИЗАЦИЯ ДИАЛОГОВОГО ОКНА ЗАГРУЗКИ ФАЙЛА В БРАУЗЕРЕ //Реверсируем список файлов в обратном порядке $preserved = array_reverse($links, true); //Отображаем в основное содержимое полученый список файлов в обратном порядке return implode ('<br>',$preserved); } Все дело было в пропущенных http:// в переменной $download ОТДЕЛЬНОЕ СПАСИБО ВАМ ДЕНИС.
поищи в поиске решение, php ie force file download может нужно ещё заголовков добавить для IE, и сейчас же вроде уже EDGE браузер. @dydaevskiy вот помучаемся так несколько дней, пока не поймёшь, что проще всего заняться отладкой и перепроверить каждую строчку кода в интерактивном или с помощью var_dump() способом, так самостоятельно можно найти почти любую ошибку.
Как сделать отладку с помощью var_dump() мне кажется я понял, а интерактивный получается просто тестирование скрипта после каждой новой строчки?
ну с опытом сможешь тестировать только спорные моменты или идти от ошибки вверх. ты почитай статью, там пишут что можно только конкретные строчки смотреть и ещё больше возможностей, на это нужно время потратить, читать теорию, практиковаться. сможешь и ракеты в космос отправлять.
В общем День у меня новый затык (. Выдачу списка файлов и организацию кнопки для загрузки файлов я сделал (IE пусть подохнет). Теперь мне необходмо организовать такой алгоритм отображения. if Если файлов в каталоге пользователя менее 10 то отобразить уже реализованный вид отображения файлов. else Но если в каталоге пользователя файлов более 10 мне необходимо отобразить только первых десять а остальные спрятать в спойлер. И общий список файлов в спойлере разделить на 4 столбика. То есть как-то так: Естественно мне на помощь приходит конструкция ifelse: Код (Text): <?php if ($a > $b) { echo "a больше, чем b"; } else { echo "a НЕ больше, чем b"; } ?> И так как мне необходимо вырвать из массива первые десять строк, на помощь приходит Извлечение элементов из массива с помощью array_slice() Сейчас мой код выглядет так: Код (Text): <?php //Вывод ошибок для отладки на экран //ini_set('display_errors',1); //error_reporting(E_ALL); //Конц вывода ошибок для отладки на экран //Добавление новой вкладки в WP-RECALL add_action('init','add_tab_my_report_files'); //Функция добавления function add_tab_my_report_files(){ //Внешний вид новой вкладки иконка, тайтл rcl_tab('myform','my_report_files_recall_block','Мои отчеты',array('public'=>0,'class'=>'fa-file-text-o','order'=>20)); } //Содержимое вкладки и место отображения контента - $user_lk function my_report_files_recall_block($user_lk){ //WordPress захват логина пользователя global $current_user; get_currentuserinfo(); $user_login = '' . $current_user->user_login; // END WordPress захват логина пользователя //Входим в каталог _doc за тем в подкаталог имя которого соответствует логину пользователя $dir = '_doc/'.$user_login.'/'; //Загоняем в переменную $list весь список файлов который находится в каталоге и подкаталоге $list = glob($dir.$user_login.'_*.*'); //Создаем пустой массив в который далее будет добавлен весь список файлов $links = array (); //Добавлем список файлов из подкаталога с логином пользователя в пустой массив foreach( $list as $file_path){ $filename = basename($file_path); //Начало отображения имени файла с 14 символа от конца, и отображать 14 символов $rest = substr("$filename", -14, 14); //$links[] = "<a href=\"http://www.sto.sumy.ua/_doc/$user_login/".$filename."\" target=\"_blank\">".$rest."<a>"; //Создаем маску для кнопки загрузки файлов $download = "<a href=\"http://testgoldauto.com/_doc/$user_login/".$filename."\" download><i class=\"fa fa-download fa-2x\" aria-hidden=\"true\" ></i></a>"; //$download = "<a href=\"testgoldauto.com/_doc/$user_login/".$filename."\" download><i class=\"fa fa-download fa-2x\" aria-hidden=\"true\" ></i></a>"; //Добавляем в пустой массив список файлов по указанной в переменной маске $links[] = "<a href=\"http://testgoldauto.com/_doc/$user_login/".$filename."\" target=\"_blank\">".$rest."</a> ".$download." "; } if ($filename < 10) { print_r( array_slice( $links, 0 - 10 ) ); } else { //РЕАЛИЗАЦИЯ ДИАЛОГОВОГО ОКНА ЗАГРУЗКИ ФАЙЛА В БРАУЗЕРЕ $file = ($filename); if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); readfile($file); exit; } // END РЕАЛИЗАЦИЯ ДИАЛОГОВОГО ОКНА ЗАГРУЗКИ ФАЙЛА В БРАУЗЕРЕ //Реверсируем список файлов в обратном порядке $preserved = array_reverse($links, true); //Отображаем в основное содержимое полученый список файлов в обратном порядке return implode ('<br>',$preserved); } } И итог его работы получается таким: Как мне вытянуть из print_r( array_slice( $links, 0 - 10 ) ); первые 10 строк массива в переменную так что б они отображались адекватно, то есть так:
Разобрался, а как указать в $_poslednie_posle_10 = array_slice($links, 11 - ); Прописать правильно что б происходил захват всех строк массива которые идут после 11 строки? То есть допустм у меня отображение первых десяти строк организовано захватом в переменную первых десяти строк массива, то есть вот так: Код (Text): //Захват первых десяти файлов массива $_pervue_10 = array_slice($links, 0 - 10); Ну е могу понять как захватить не определенный диапазон строк а все строки которые имеются в массиве но только после первых десяти строк массива.