| 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: 13 let
|
|||
0