11.05.2015 / 12:18 | |
kingdosya Пользователь Сейчас: Offline
Имя: Сергей Откуда: Вашингтон Регистрация: 06.08.2013
| web_demon, Как ты думаешь или может точно знаешь, как реализована эта функция? А точнее как именно делает манипуляции с оперативкой
|
11.05.2015 / 13:03 | |
Koenig Модератор форума Сейчас: Offline
Имя: Дмитрий Откуда: Калининград(Koenigsberg) Регистрация: 23.01.2011
| можно налету отдавать скриптом, ссылка не прямая, содержит ид, скрипт уже отдает под новым именем файл, курить заголовки
__________________
Магистр Мёда |
11.05.2015 / 13:19 | |
kingdosya Пользователь Сейчас: Offline
Имя: Сергей Откуда: Вашингтон Регистрация: 06.08.2013
| Цитата Koenig: можно налету отдавать скриптом, ссылка не прямая, содержит ид, скрипт уже отдает под новым именем файл, курить заголовкиПокажешь 1 полный пример с комментариями?
|
11.05.2015 / 14:17 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| kingdosya, посмотри в «Полезные коды»
|
11.05.2015 / 18:47 | |
kingdosya Пользователь Сейчас: Offline
Имя: Сергей Откуда: Вашингтон Регистрация: 06.08.2013
| Цитата Naik: kingdosya, посмотри в «Полезные коды»Посмотрел понял. Но я решил не использовать такой способ в связи с тем что воркеры будут заняты при загрузках. А если у пользователя низкий скорость интернета то вообще "круто" будет. Да еще и не все хостинги позволяют увеличить время выполнения скрипта. Пока лучшим решением считаю функцию stream_copy_to_stream() но вот только если бы кто нибудь объяснил мне как эта функция использует оперативку. А то думаешь будто она пользуется оперативкой почти также как и file_get_contents()
|
11.05.2015 / 19:32 | |
Jahak Пользователь Сейчас: Offline
Имя: Константин Регистрация: 16.01.2012
| kingdosya, Надо сорцы php смотреть. Завтра посмотрю |
11.05.2015 / 19:43 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| kingdosya, если в названии stream то логично, что копирует блоками..
|
12.05.2015 / 10:53 | |
kingdosya Пользователь Сейчас: Offline
Имя: Сергей Откуда: Вашингтон Регистрация: 06.08.2013
| Цитата Jahak: kingdosya, Надо сорцы php смотреть. Завтра посмотрю Жду с удовольствием |
12.05.2015 / 13:43 | |
Jahak Пользователь Сейчас: Offline
Имя: Константин Регистрация: 16.01.2012
| |
12.05.2015 / 15:19 | |
kingdosya Пользователь Сейчас: Offline
Имя: Сергей Откуда: Вашингтон Регистрация: 06.08.2013
| Цитата Jahak: https://github.com/php/php-src.../streamsfuncs.c#L444Спасибооо! PHP_FUNCTION(stream_copy_to_stream)
{
php_stream *src, *dest;
zval *zsrc, *zdest;
zend_long maxlen = PHP_STREAM_COPY_ALL, pos =0;
size_tlen;
intret;
if(zend_parse_parameters(ZEND_NUM_ARGS(),"rr|ll", &zsrc, &zdest, &maxlen, &pos) == FAILURE) {
RETURN_FALSE;
}
php_stream_from_zval(src, zsrc);
php_stream_from_zval(dest, zdest);
if(pos >0&&php_stream_seek(src, pos, SEEK_SET) <0) {
php_error_docref(NULL, E_WARNING,"Failed to seek to position"ZEND_LONG_FMT"in the stream", pos);
RETURN_FALSE;
}
ret =php_stream_copy_to_stream_ex(src, dest, maxlen, &len);
if(ret != SUCCESS) {
RETURN_FALSE;
}
RETURN_LONG(len);
}
/* }}} */
/* {{{ proto array stream_get_meta_data(resource fp)
Retrieves header/meta data from streams/file pointers */
так кто теперь объяснить? |