Получение PHP
Этот раздел содержит информацию о том, где получить PHP и вопросы, касающиеся OC.
- Где я могу взять PHP?
- Доступны ли прекомпилированная бинарная версия?
- Где я могу достать библиотеки, необходимые для компиляции некоторых дополнительных модулей PHP?
- Как подключить эти библиотеки?
- Я скачал последнюю версию исходных кодов PHP из Git-репозитория на мою машину Windows, как мне их скомпилировать?
- Где найти файл совместимости браузеров ?
- Что означает потокобезопасность при загрузке PHP?
Где я могу взять PHP?
Вы можете скачать PHP с любого сайта из сети сайтов PHP. Сайты сети можно найти на » https://www.php.net/. Вы также можете воспользоваться анонимным Git для получения самой последней версии исходников. За подробностями обращайтесь к » https://www.php.net/git.php.
Доступны ли прекомпилированная бинарная версия?
Мы распространяем прекомпилированные бинарники только для Windows, так как мы не в состоянии компилировать PHP со всеми возможными комбинациями модулей, даже для самых основных платформ Linux/Unix. Также заметьте, что на сегодня многие дистрибутивы Linux поставляются с PHP. Бинарники для Windows можно скачать с нашей страницы » Downloads, для бинарников под Linux, пожалуйста, посетите сайт вашего дистрибутива.
Где я могу достать библиотеки, необходимые для компиляции некоторых дополнительных модулей PHP?
Замечание: Звёздочкой (*) помечены библиотеки, которые исходя из нашего опыта являются потоко-небезопасными; эти библиотеки не рекомендуется использовать в многопоточной среде.
- » LDAP (Unix).
- » LDAP (Unix/Win) : Mozilla Directory (LDAP) SDK
- » бесплатный LDAP сервер.
- » Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.
- » SNMP* (Unix): .
- » GD (Unix/Win).
- » mSQL* (Unix).
- » PostgreSQL (Unix).
- » IMAP* (Win/Unix).
- » Sybase-CT* (Linux, libc5) : Available locally.
- » FreeType (libttf):.
- » ZLib (Unix/Win32).
- » expat XML parser (Unix/Win32).
- » PDFLib.
- » mcrypt.
- » mhash.
- » t1lib.
- » dmalloc.
- » aspell.
- » readline.
Как подключить эти библиотеки?
Вам необходимо следовать инструкциям, сопровождающим библиотеку. При запуске скрипта ‘configure’, некоторые библиотеки (такие как библиотека GD) находятся автоматически, другие должны быть включены с помощью опции ‘ —with-EXTENSION ‘ в ‘ configure ‘. Запустите ‘ configure —help ‘ для получения списка всех опций.
Я скачал последнюю версию исходных кодов PHP из Git-репозитория на мою машину Windows, как мне их скомпилировать?
Изучите раздел руководства, содержащий актуальное » пошаговое руководство по сборке
Где найти файл совместимости браузеров ?
Файл browscap.ini можно скачать с » http://browscap.org/.
Что означает потокобезопасность при загрузке PHP?
Потокобезопасность означает, что данный бинарный файл может работать с многопоточным веб-сервером, например таким, как Apache 2 под Windows. Потокобезопасность обеспечивается хранением локальных копий в каждом потоке, так что данные не вступят в противоречие с другим потокам.
Так что же выбрать? Если вы хотите использовать PHP в качестве бинарного файла CGI, то вам не нужна потокобезопасность, так как бинарный файл будет запускаться при каждом запросе. Для многопоточных веб-серверов, таких как IIS5 и IIS6, вам понадобится поточная версия PHP.
User Contributed Notes
There are no user contributed notes for this page.
- ЧАВО
- Общая информация
- Списки рассылки
- Получение PHP
- Вопросы по базам данных
- Установка
- Проблемы сборки
- Использование PHP
- Хеширование паролей
- PHP и HTML
- PHP и COM
- Разные вопросы
- Copyright © 2001-2023 The PHP Group
- My PHP.net
- Contact
- Other PHP.net sites
- Privacy policy
Скачивание файлов php
Ниже в этой статье вы можете увидеть универсальный скрипт для скачивание файлов на php, но давайте рассмотрим одну проблему и как скрипт её устраняет.
Если этот скрипт покажется вам сложным, советую посмотреть, как на простом примере реализуется скрипт cкачивания изображений и текстовых файлов на php.
Многие пользователи сталкиваются с одной необычной проблемой. К примеру необходимо реализовать скачивания mp3-файлов. С одной стороны, сделать это очень просто: необходимо лишь реализовать скрипт загрузки файлов, который также будет вести подсчет числу скачиваний.
После проверки выясняется, что файлы без проблем скачиваются. Однако вскоре возникает одна проблема: Internet Explorer не спрашивает, скачать файл или просто открыть, а запускает медиа-плеер.
Та же проблема встречается с файлами и других форматов. Пользователям не всегда нужно, чтобы файлы pdf, doc или gif способствовали открытию соответствующих программ. Для решения этой проблемы существует PHP-скрипт, предназначенный для скачивания файлов.
PHP скрипт для скачивания файлов:
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); // нужен для Explorer header("Content-Type: $ctype"); header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" ); header("Content-Transfer-Encoding: binary"); // нужно сделать подсчет размера файла его пути header("Content-Length: ".filesize($filename)); readfile("$filename"); exit(); ?>Этот скрипт будет делать пользователям запрос, которые смогут выбрать, сохранить тот или иной файл или открыть его. Вам необходимо создать файл dl_save.php, а затем скопировать в него нужный код. Ссылка, которая ведет на скачивание файла, выглядит примерно следующим образом:
Ссылку на скачивания файла оформлять нужно (примерно) так:
При этом file.mp3 – это ваш файл. При необходимости вы можете прописать к нему полный путь. А с помощью редиректа это выглядит так:
header("Location: dl_save.php?filename=file.mp3");скачать php файл без доступа на фтп
✅ Трастовых площадок под размещение статей и ссылок. Опыт 15 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Новый аналог AllSubbmitter (заполнение форм) https://getmanylinks.ru/getmanysubmits.html (Бесплатное демо)
На сайте с 12.08.2007
28 марта 2010, 19:15
Можно, посредством другого скрипта..
На сайте с 25.11.2006
28 марта 2010, 19:25
banshee(oleg):
Можно, посредством другого скрипта..
Написано же:
не имея доступ на сервер
На сайте с 08.09.2004
28 марта 2010, 19:27
невозможно
На сайте с 06.07.2009
28 марта 2010, 19:50
нереально 😀 а то все невозможно, да нельзя
Рерайт и копирайт со смыслом, грамотный постинг, дешево. (/ru/forum/459152) ICQ — 578 873 297
На сайте с 20.04.2006
28 марта 2010, 19:58
можно, если есть уязвимость в других скриптах и залить шелл.
На сайте с 10.05.2009
28 марта 2010, 20:03можно если они не обрабатываются модулем php. Тоесть если вы хотите чтобы с вашего сервера пользователи качали php файлы, то можно это настроить. С чужого без разрешения скачать нельзя.
Скачивание файлов с сайтов при помощи PHP и CURL
CURL является отличным инструментом, для подключения к удаленным сайтам, что упрощает возможность отправки форм, загрузку целых страниц, или, как в нашем случае, загрузку файлов. В этом сниппете я покажу вам, как вы можете скачать файл прямо на диск с помощью CURL.
Примечание: чтобы упростить пример, в этой статье мы не будем выполнять проверку CURL запросов на ошибки. Вы же всегда должны делать это, функция curl_getinfo() главное подспорье в этом деле.
Вы можете прочитать ответ и записать его на диск, как показано в следующем листинге. $path место на сервере, где вы хотите, чтобы записать файл.
$ch = curl_init( $url );
curl_setopt( $ch , CURLOPT_RETURNTRANSFER, true);
$data = curl_exec( $ch );
file_put_contents ( $path , $data );
Существует, однако, проблема с этим кодом. В данном примере, файл пишеться на диск не напрямую, а сперва целиком загружается в оперативную память. Я думаю здесь понятно, что можно запросто умереться в предел памяти для исполнения скрипта и схлопотать fatal error. Так что данный способ годиться если вы скачиваете маленькие файлы, мегабайт до 20-30.
Примечание: Даже если ваш лимит памяти установлен очень высоко, грузить сервер лишний раз тоже не хорошо.
В таком случае опять возложим всю черную работу на CURL и заставим его писать данные прямо в файловый поток. Сделать это можно с помощью директивы CURLOPT_FILE.
Для этого вы должны сначала создать новый указатель файла с помощью fореn(). Далее мы передаем этот указатель на файл для выполнения запроса. Наконец, мы закрываем файл.
$fp = fopen ( $path , ‘w’ );
$ch = curl_init( $url );
curl_setopt( $ch , CURLOPT_FILE, $fp );
$data = curl_exec( $ch );
Вот и все, что нужно сделать, теперь можно не бояться о превышение лимита памяти для исполнения скрипта.
