Посмотрите, пожалуйста, мой код и подскажите почему на 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|||";
}