Autor | Zpráva | ||
---|---|---|---|
Musilda Profil |
#1 · Zasláno: 19. 11. 2013, 08:23:35
Zdravím všechny
potřeboval bych poradit s base64_encode. Pro import fotografií na sreality jsem vytvořil toto: $image = file_get_contents($url); $img = base64_encode($image); $data = new stdClass; $data->main = (int)1;//Hlavní fotka $data->photo_id = (int)$img_id; $data->data = (binary)$img; $predat = array($session_id,$advert_id,$advert_rkid,$data); $request = xmlrpc_encode_request('addPhoto', $predat); Tento postup mi bez problémů funguje u inzerátů, ale zde u fotografie, která musí být binary, tak mi funkce base64_encode neustále vrací string. Když dám var_dump, tak je to ["data"]=> string(84272) "/9j/4AA...... a tak dále $url je url adresa. Nevím zda to chápu, ale ta funkce by neměla vracet string. Díky za každou pomoc. |
||
Chro Profil |
#2 · Zasláno: 19. 11. 2013, 08:42:31
Binary vrací file_get_contents. Enkódováním base64 se převede na string.
|
||
Musilda Profil |
#3 · Zasláno: 19. 11. 2013, 08:51:06
Zkoušel jsem to i tak. Stále to hází chybu
["statusMessage"]=> string(73) "Invalid parameters: Attribute 'data' must be binary (it is ). Nemůže být problém při vytvoření struct? |
||
Jan Tvrdík Profil |
#4 · Zasláno: 19. 11. 2013, 08:53:56
|
||
Musilda Profil |
#5 · Zasláno: 19. 11. 2013, 09:03:48
Jan Tvrdík:
Děkuji za ty dva odkazy. Hledáním řešení problému jsem strávil již několik hodin a ty vlákna jsem četl. Myslím, že tam je použito XML_RPC. |
||
Jan Tvrdík Profil |
#6 · Zasláno: 19. 11. 2013, 09:21:15
Musilda:
Na funkci xmlrpc-set-type jsi narazil? |
||
Musilda Profil |
#7 · Zasláno: 19. 11. 2013, 09:30:03
Narazil a nepovedlo se. :-(
To není o tom, že bych napsal sem a čekal až mi to někdo strčí pod nos. Vím že to tady občas tak lidi píší, ale fakt jsem nad tím včera strávil skoro osm hodin a nepovedlo se vyřešit. Pokud to použiji takto: $data->data = xmlrpc_set_type($img, 'base64'); object(stdClass)#5781 (3) { ["main"]=> int(1) ["photo_id"]=> int(119) ["data"]=> bool(true) } array(3) { ["status"]=> int(452) ["output"]=> array(0) { } ["statusMessage"]=> string(74) "Invalid parameters: Attribute 'data' must be binary (it is )." } Pokud takto: $item = xmlrpc_set_type($img, 'base64'); $data->data = (binary)$item; object(stdClass)#5782 (3) { ["main"]=> int(1) ["photo_id"]=> int(119) ["data"]=> string(1) "1" } array(3) { ["status"]=> int(452) ["output"]=> array(0) { } ["statusMessage"]=> string(73) "Invalid parameters: Attribute 'data' must be binary (it is )." } Nejdřív je to bool, podruhé string. Takže fakt nevím. |
||
Jan Tvrdík Profil |
#8 · Zasláno: 19. 11. 2013, 09:33:46
Musilda:
Tak znovu a tentokrát si přečti dokumentaci. |
||
Musilda Profil |
#9 · Zasláno: 19. 11. 2013, 10:11:40
Tak bohužel to nejsem schopen dát dohromady. Pochopil jsem z dokumentace, že to změní na objekt, ale nedokáži s tím hnout.
|
||
Joker Profil |
#10 · Zasláno: 19. 11. 2013, 10:52:18
Musilda:
„Pochopil jsem z dokumentace, že to změní na objekt, ale nedokáži s tím hnout.“ Z té dokumentace: Return Values Returns TRUE on success or FALSE on failure. If successful, value is converted to an object. = Vrací TRUE při úspěchu a FALSE při chybě. Je-li volání úspěšné, [parametr] value se konvertuje na objekt. Tzn. nemá smysl pracovat s návratovou hodnotou té funkce. |
||
Časová prodleva: 10 let
|
0