Sc0undRel
@Sc0undRel

Почему не закачивает файл на фтп?

Посмотрите, пожалуйста, мой код и подскажите почему на ftp не записывается файл.

Весь код рабочий, в цикле переменная $mylink действительно принимает значение ссылки на картинку и потом записывается в файл через file_get_contents.
Почему же потом fwrite($fp, $file); не срабатывает?
Как вычислить ошибку? Я плох в отладке...

function getContentByUri($uri)
                {
                    static $loop = 5;
                    if (!$loop) {
                        return;
                    }
                    --$loop;
                    $headers = get_headers($uri, true);
                    if (strpos($headers[0], '302')) {
                        if (!isset($headers['Location'])) {
                            return false;
                        }
                        $uri = is_array($headers['Location'])
                            ? current($headers['Location'])
                            : $headers['Location'];
                        return getContentByUri($uri);
                    }
                    $context = stream_context_create(array(
                        'http' => array(
                            'header' => array(
                                // If ! User-agent => 400 Bad request
                                'User-agent: spider',
                            ),
                        ),
                    ));
                    return file_get_contents($uri, false, $context);
                }

				    $link = "http://ru.aliexpress.com/item/Luxury-Pure-Color-Aluminum-Ultra-Thin-Metal-Bumper-Pink-Gold-Silver-Frame-for-Huawei-Ascend-P7/32402473816.html?spm=2114.03020208.3.108.wl03KW";
					if(strpos($link, 'item') !== false){
					    $link = str_replace("ru.aliexpress", "www.aliexpress", $link);
                        $page = getContentByUri($link);
						$first_part = explode("window.runParams.imageBigViewURL=[", $page);
						$second_part = explode("];", $first_part[1]);
						$array = $second_part[0];
						$array = str_replace("\"", "", $array);
						$array = str_replace(".jpg\r", "|", $array);
						$array = str_replace(",\n", "|", $array);
						$array = explode("|", $array);
						foreach($array as $img)
						{
							$link = substr($img, 1);
							$name_in_array = explode("/", $link);
							$name = array_pop($name_in_array);
							$name_md = md5($link);
							$mylink = "http://";
							for($i=3;$i<=count($name_in_array);$i++){
									$mylink .= $name_in_array[$i-1] . "/";
							}
							$mylink .= urlencode($name);
							$file = file_get_contents($mylink);
							$fp = fopen($_SERVER['DOCUMENT_ROOT'] . "/uploads/posts/" . date('Y-m') . "/" . $name_md . ".jpg", "w");
							fwrite($fp, $file);
							fclose($fp);
							$links_to_images .=  date('Y-m') . "/" . $name_md . ".jpg|||";
						}
  • Вопрос задан
  • 185 просмотров
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Проверьте, действительно ли file_get_contents() получает файл.
Ну и вместо fopen - fwrite - fclose можно использовать file_put_contents()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы