Bunun mümkün olup olmadığından emin değilim, fakat artık akademik bir mücadele haline geldi. Bir PHP dosyasında ikili veri gömmek için __halt_compiler()
hile kullanarakPHP zip_open() ve php: // temp, açılamıyor
, başarıyla fseek()
__COMPILER_HALT_OFFSET__
için
Her neyse, ikili Posta verilerinin küçük bir yumru ("merhaba dünya" diyor tek bir dosya içeren tek klasör) yapmak denedim ne __halt_compiler()
benim çağrısından sonra ise depoladığınız verileri doğrudan'ye kopyalayın 10 dere ve başarı ile bunu yapmış
$php = fopen(__FILE__, 'rb');
$tmp = fopen('php://temp', 'r+b');
fseek($php, __COMPILER_HALT_OFFSET__);
stream_copy_to_stream($php, $tmp);
Sorunum için şimdi açık php://temp
zip_open()
rewind()
ve passthru()
geçici akım kolu ise, verileri döker) diğer tür poss rağmen görebildiğim kadarıyla
$zip = zip_open('php://temp');
(Buradaki sorun,
zip_open()
ile akış desteğinin olmaması gibi problemlerdir. Buradaki problem,php://memory
vephp://temp
aktarımları arasındaki veri kalıcılığının olmamasıdır. Bu etrafta çalışılabilirse, belki de mümkündür.
Ben
var_dump($zip); // int(11)
(diğer birçok olası hata kodları gibi görünüşte) üzerinde hiçbir dokümantasyon bulduk hata kodu
11
, geri tekme tutar @cweiske işaret ettiği gibi, hata kodu11 = ZipArchive::ER_OPEN
, Dosya açılamıyor
Bu sonuç, php://temp
akışını veya başka bir olası sorunu kullanmama yönelik girişimin sonucu mu? Ayrıca bir OOP yaklaşımı olduğunun da farkındayım (ZipArchive
, et al.) ama temel bilgilerle başlayacağımı düşündüm.
Herhangi bir fikrin var mı?
Hata kodu ** 11 **, ** http://www.php.net/manual/en/function.ziparchive-open.php#102849 adresinden "ZipArchive" ile ilgili ** hata açık ** sınıf Sınıfın aynı uzatma işlevine bir sarıcı olacağı için bunu çeviririm. – Dan
Önceden bağlantılı bir yorumda, "c: \ windows \ temp" dosyasında saklanan bir dosyayı açmaya çalışırken, değişen Windows işletim sisteminde döndürülen hatadan bahseder. Denemem sırasında "php: // temp" akışı kullanılır. veri uzunluğu kaplamayı aştığında bir dosya var, orada olmazdı, yine de php: // memory 'ye geçtim, yine de ** bir hatayla sonuçlanır **. – Dan
Teşekkürler @Gordon - * Düzenlendi *; Yazmamak, sadece okumak aslında. – Dan