Вниз  PHP и мелкие вопросы
- 11.05.2015 / 12:18
kingdosya
  Пользователь

kingdosya 
Сейчас: Offline
web_demon, Как ты думаешь или может точно знаешь, как реализована эта функция? А точнее как именно делает манипуляции с оперативкой
- 11.05.2015 / 13:03
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
можно налету отдавать скриптом, ссылка не прямая, содержит ид, скрипт уже отдает под новым именем файл, курить заголовки
__________________
 Магистр Мёда
- 11.05.2015 / 13:19
kingdosya
  Пользователь

kingdosya 
Сейчас: Offline
Цитата Koenig:
можно налету отдавать скриптом, ссылка не прямая, содержит ид, скрипт уже отдает под новым именем файл, курить заголовки
Покажешь 1 полный пример с комментариями?
- 11.05.2015 / 14:17
Naik
  Пользователь

Naik 
Сейчас: Offline
kingdosya, посмотри в «Полезные коды»
- 11.05.2015 / 18:47
kingdosya
  Пользователь

kingdosya 
Сейчас: Offline
Цитата Naik:
kingdosya, посмотри в «Полезные коды»
Посмотрел понял. Но я решил не использовать такой способ в связи с тем что воркеры будут заняты при загрузках. А если у пользователя низкий скорость интернета то вообще "круто" будет. Да еще и не все хостинги позволяют увеличить время выполнения скрипта. Пока лучшим решением считаю функцию stream_copy_to_stream() но вот только если бы кто нибудь объяснил мне как эта функция использует оперативку. А то думаешь будто она пользуется оперативкой почти также как и file_get_contents()
- 11.05.2015 / 19:32
Jahak
  Пользователь

Jahak 
Сейчас: Offline
kingdosya, Надо сорцы php смотреть. Завтра посмотрю :)
- 11.05.2015 / 19:43
Naik
  Пользователь

Naik 
Сейчас: Offline
kingdosya, если в названии stream то логично, что копирует блоками..
- 12.05.2015 / 10:53
kingdosya
  Пользователь

kingdosya 
Сейчас: Offline
Цитата Jahak:
kingdosya, Надо сорцы php смотреть. Завтра посмотрю :)
Жду с удовольствием
- 12.05.2015 / 13:43
Jahak
  Пользователь

Jahak 
Сейчас: Offline
- 12.05.2015 / 15:19
kingdosya
  Пользователь

kingdosya 
Сейчас: Offline
Цитата Jahak:
https://github.com/php/php-src.../streamsfuncs.c#L444
Спасибооо!
  1. PHP_FUNCTION(stream_copy_to_stream)
  2. {
  3. php_stream *src, *dest;
  4. zval *zsrc, *zdest;
  5. zend_long maxlen = PHP_STREAM_COPY_ALL, pos =0;
  6. size_tlen;
  7. intret;
  8. if(zend_parse_parameters(ZEND_NUM_ARGS(),"rr|ll", &zsrc, &zdest, &maxlen, &pos) == FAILURE) {
  9. RETURN_FALSE;
  10. }
  11. php_stream_from_zval(src, zsrc);
  12. php_stream_from_zval(dest, zdest);
  13. if(pos >0&&php_stream_seek(src, pos, SEEK_SET) <0) {
  14. php_error_docref(NULL, E_WARNING,"Failed to seek to position"ZEND_LONG_FMT"in the stream", pos);
  15. RETURN_FALSE;
  16. }
  17. ret =php_stream_copy_to_stream_ex(src, dest, maxlen, &len);
  18. if(ret != SUCCESS) {
  19. RETURN_FALSE;
  20. }
  21. RETURN_LONG(len);
  22. }
  23. /* }}} */
  24. /* {{{ proto array stream_get_meta_data(resource fp)
  25. Retrieves header/meta data from streams/file pointers */
так кто теперь объяснить?
Наверх  Всего сообщений: 4740
Фильтровать сообщения
Поиск по теме
Файлы топика (129)