DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > PHP
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

PHP PHP aplikacije, Smarty, PEAR

Odgovori
 
Alati teme Način prikaza
Staro 04. 07. 2008.   #1
godza
Goran Radulović
Professional
 
Avatar godza
 
Datum učlanjenja: 06.06.2005
Lokacija: Novi Sad
Poruke: 259
Hvala: 8
3 "Hvala" u 2 poruka
godza is on a distinguished road
Pošaljite ICQ poruku za godza Pošaljite poruku preko MSN za godza
Default base64 -> binary file konverzija

Imam problem. Radim na email parseru, dakle skinem email sa servera, isparsiram ga i attachmente snimim na file system. Attachmenti su po pravilu enkodirani base64, i ja trebam da ih dekodiram.

Dakle, postavka je ovako, imam fajl u base64 i ja trebam da ga dekodiram u binary.

Naravno, to mogu da uradim tako shto cu ucitati fajl u php i koristiti funkciju base64_decode, koja radi ono shto meni treba, i tako dekodiran binary zapisati na fajlsistem. Mana ovoga je ocigledna, trosim strasno mnogo memorije. Znaci moracu citav fajl ucitati u memoriju i onda ga dekodirati, shto kod fajlova vecih od 5 mb nije opcija poshto imam memory_limit.

Prosirenje php memory limita nije opcija, niti koriscenje nekog external programa jer ovo treba da bude univerzalno resenje.

da li postoji neka php funkcija koja to radi, ili vi imate neki metod koji koristite za resenje ovog problema?
__________________
Never show weakness, the only pain that matters is the pain you inflict.
godza je offline   Odgovorite uz citat
Staro 04. 07. 2008.   #2
MorenoArdohain
Knowledge base
Wrote a book
 
Avatar MorenoArdohain
 
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
MorenoArdohain će postati "faca" uskoroMorenoArdohain će postati "faca" uskoro
Default

Mozda da probas da parsiras liniju po liniju, tj da napises svoju verziju base64 decodera?
Ako se dobro secam, postojao je base64 encoder/decoder pisan u JS-u, pa mozes iskoristiti algoritam, mada, moguce je da postoji i gotovo resenje u PHP-u.
__________________
Năo quero mais seguir um só caminho
MorenoArdohain je offline   Odgovorite uz citat
"Hvala" MorenoArdohain za poruku:
Staro 04. 07. 2008.   #3
godza
Goran Radulović
Professional
 
Avatar godza
 
Datum učlanjenja: 06.06.2005
Lokacija: Novi Sad
Poruke: 259
Hvala: 8
3 "Hvala" u 2 poruka
godza is on a distinguished road
Pošaljite ICQ poruku za godza Pošaljite poruku preko MSN za godza
Default

E, u pravu si totalno. Sreca pa je base64 fajl uredno "lomljen" newline karakterom

dakle
PHP kôd:
  /**
   * Decode base64 encoded file
   *
   * @param string $input_file
   * @param string $output_file
   * @return boolean
   */
  
function base64_decode_file($input_file$output_file) {
    
$input_handle fopen($input_file'r');
    if (!
$input_handle) {
      return 
false;
    } 
// if
    
$output_handle fopen($output_file'w');
    if (!
$output_handle) {
      return 
false;
    } 
// if
    
    
while (!feof($input_handle)) {
        
$encoded fgets($input_handle);
        
$decoded base64_decode($encoded);
        
fwrite($output_handle$decoded);
    } 
// while;
    
    
if (fclose($input_handle) && fclose($output_handle)) {
      return 
true;
    }
    return 
false;
  } 
// base64_decode_file 
Najopustenije radi posao uz skoro nikakav utrosak memorije.
__________________
Never show weakness, the only pain that matters is the pain you inflict.

Poslednja izmena od godza : 04. 07. 2008. u 21:27.
godza je offline   Odgovorite uz citat
Staro 04. 07. 2008.   #4
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

mogao bi i da koristis ugradjeni filter convert.base64-decode uz pomoc stream-ova
__________________
Leadership is the art of getting people to want to do what you know must be done.
ivanhoe je offline   Odgovorite uz citat
Staro 04. 07. 2008.   #5
godza
Goran Radulović
Professional
 
Avatar godza
 
Datum učlanjenja: 06.06.2005
Lokacija: Novi Sad
Poruke: 259
Hvala: 8
3 "Hvala" u 2 poruka
godza is on a distinguished road
Pošaljite ICQ poruku za godza Pošaljite poruku preko MSN za godza
Default

Pa mogao bih, ali oni su dostupni tek od PHP 5.x.x, a nasha aplikacija treba da bude php4 php5 kompatibilna. Stavicu da ako je verzija 5.x koristi conversion filtre a ako je starija da radi peshke konverziju.
__________________
Never show weakness, the only pain that matters is the pain you inflict.
godza je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
Konverzija -Kol'ko vrede posete Markok Marketing i SEO 7 26. 03. 2009. 12:34
Konverzija titla Džonson Sva početnička pitanja 7 21. 08. 2008. 12:27
Mail encoding - base64, 8bit, 7bit...? orangem Sva početnička pitanja 1 17. 11. 2007. 17:13
Konverzija html u pdf Milos Vukotic PHP 6 14. 05. 2007. 00:34


Vreme je GMT +2. Trenutno vreme je 08:12.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.