| Zdravim Vas!
Mam nasledujici jednoduchy kod, ktery stahne obrazek z ciziho serveru a ulozi ho na vlastni. Funguje skvele a jednoduse, ale narazil jsem na problem v pripade, ze chci stahnout obrazek z gumtree (u obrazku maji v URL spoustu specialnich znaku a PHP to zrejme neprekousne). Vedeli byste nekdo, jak by to slo udelat, aby to fungovalo vzdy? Dekuji!
Prikladam funkcni a "ne"funkcni ukazku
$content = file_get_contents("[link]");
//Store in the filesystem.
$fp = fopen("image.jpg", "w");
fwrite($fp, $content);
fclose($fp);
$content = file_get_contents("[link]!zEE9s3!(I!RBRR5rYeq+g~~48_80.JPG");
//Store in the filesystem.
$fp = fopen("image.jpg", "w");
fwrite($fp, $content);
fclose($fp); (odpovědět) | Aoj | 82.27.163.* | 22.3.2013 6:45 |
|
|
|
re: Download obrazku PHP | # |
| Co zkusit získaný název souboru enkódovat, aby ses zbavil speciálních znaků?
[link]
----------
Sec-Cave.cz - [link] (odpovědět) | |
|
|
re: Download obrazku PHP | # |
| kdyby ti tam dal nekdo 1G soubor, tak stahnes 1G soubor? (kdyz neberu v potaz nastaveni limitu php).
pouzivas ty fce uplne naopak, prave pro ukladani bys mohl pouzit spis file_put_contents().
zde konkretne tomu vadi znak $ v url - dojde k automaticke expanzi promenne. urlencode snad neni protreba, u file_get_contents jsem mel problem pouze s mezerou - tu jsem prevadel natvrdo %20 , s urlencode snad tusim byly i problemy.
Pokud tam adresu obrazku davas rucne, tak escapuj $ (nechapu ze jsi na to neprisel sam, nectes chybove hlasky php ?). pokud ze souboru apod., tak by to melo byt v pohode. (odpovědět) | ftfr | 94.113.1.* | 22.3.2013 11:46 |
|
|
|
re: Download obrazku PHP | # |
| kdyz das url obrazku do jednoduchych uvozovek, neprovede se automaticka expanze, a ani pripadne escape sekvence. (odpovědět) | ftfr | 94.113.1.* | 22.3.2013 11:49 |
|
|
|
re: Download obrazku PHP | # |
| Funkci urlencode používám už dlouho a nikdy jsem s ní problém neměl a nikdy jsem nezaznamenal, že by se chovala divně.
----------
Sec-Cave.cz - [link] (odpovědět) | |
|
|
re: Download obrazku PHP | # |
| Moc dekuji. Jednoduche uvozovky zdaji se byti nejjednodussim resenim! :) Sam bych na to v zivote neprisel!! (odpovědět) | Aoj | 82.27.163.* | 22.3.2013 18:16 |
|
|
|
re: Download obrazku PHP | # |
| Použi urlencode popripade rawurlencode, zvacsa ich nepouzivam no ked sa v url nachadza medzera tak file_get_contents ju odignoruje a posle poziadavok iba po medzeru (ak sa nemylim) ale dany encoding to vyriesi ... a inak pre ukladanie :
$subor = "image.jpg";
file_put_contents($subor, $content);
<--- je to jednoduchsie ;) (odpovědět) | |
|
|
re: Download obrazku PHP | # |
| Diky moc za rady!Narazil jsem na novy problem:) Na serveru kod samozrejme funguje, ale kdyz ho spustim na Localhostu, tak se nic nestane (ani zadna chybova hlaska). Ted mam na mysli i tu verzi, ktera mela jinak fungovat (problem, ktery jsem mel predtim jste mi pomohli jiz uspesne vyresit). Ptam se tedy: Co je potreba mit zapnute v PHP, aby tento skript v poradku probehl?
Pouzivam EasyPHP na Windows 7 (btw zatim jediny z packu, ktery mi na Win7 funguje)
Verze PHP 5.4.6
Apache 2.4.2
Nejsem si jisty, jestli ted nemluvim uplne mimo, ale problem muze byt i ve Windows7? A to takovy, ze by napriklad nedovolili zapsat skriptu soubor na disk? Jak se pripadne da toto vyresit?
Diky moc predem za rady! (odpovědět) | Aoj | 82.27.163.* | 22.3.2013 23:38 |
|
|
|
re: Download obrazku PHP | # |
| Problem vyresen! Tak, ze jsem zapnul skoro vse, co jsem videl, urcite to tak neni spravne, ale hlavne, ze to jde. Dekuji (odpovědět) | Aoj | 82.27.163.* | 23.3.2013 1:00 |
|
|
|
re: Download obrazku PHP | # |
| Problém bol v oprávneniach ;) Neviem ako je to na "Widlach" pretože som s nimi už 2roky nepracoval ale na linuxe (konkrétne distro Ubuntu 11.04) treba nastaviť oprávnenia .... Keďže PHPpéčka sú vo /var/www/ <-- a nechce sa ti byť zbytočne prihlásený pod rootom tak si nastaviť /var/www/ alebo aj celý /var/ ako vlastníka tvoj účeť (ja mám celý var aby som mal aj prístup k logom ....) a zbytočne phppéčka nepotrebujú povolonie tak nastaviť že môžu zapisovať ostatný na priečinky v ktorým to phppéčko bude napríklad : /var/www (vlastní nitram147, povolenie nitram147, ostatný - nie) , priečinok /var/www/stiahniobrazok/ (vlastnik nitram147, povolenie - nitram147, ostatny - ano) a máš to :) Neviem ako je to s oprávneniami na windowse pretože ak viem tam boli iba SYSTEM , ADMINISTRATOR, a jednotlivy USERS :) (odpovědět) | |
|
|
re: Download obrazku PHP | # |
| PS: To s tým prihlásený na roote bolo myslené tak že keď chceš vytvárať nové súbory respektívne skripty aby mal práva na zápis do priečinku ale nevadí keď si priamo aj vlastníkom :) (odpovědět) | |
|
|
re: Download obrazku PHP | # |
| Pisu jen abych znovu podekoval za odpovedi!
A zjistil jsem, ze predne je treba mit zapnute allow_url_fopen nebo nejak tak. (odpovědět) | Aoj | 82.27.163.* | 2.4.2013 0:54 |
|
|
|