2012-09-11 1 views
0

Хорошо, я постараюсь сделать так же просто, как я могу!Zipping изображения, на которые ссылается xml, сгенерированный запросом mysql

Background: Я создаю XML-канал для отображения автомобилей на ebay motors pro из базы данных MySql с использованием php. Я успешно создал файл xml со всеми необходимыми сведениями, которые также передаются ftp на мой тестовый сервер.

Задача: Каждая фотография автомобиля регистрируется в базе данных как regnumber_1.jpg, regnumber_2.jpg; и так далее, и связаны с каждым транспортным средством. Изображения находятся в папке с именем autotrader.

У меня возникли проблемы с отправкой изображений из папки autotrader в папку ebay в zip-файле. Я хочу только скопировать фотографии из запроса mysql (т. Е. Не всей папки).

Я подозреваю, что это потому, что я не сделал петлю foreach правильно, но, надеюсь, кто-то сможет указать мне в правильном направлении? Вот код:

//Photos bit... 
$destination = 'tmp/ebay'; 
$filename = 'ebay-photos'; 

//images array 
$row = array(); 
foreach ($result->images as $images) { 
$images = explode(',', $row['images']); 
foreach ($images as $image) { 
copy('uploads/used-cars/autotrader/' . $image, $destination . $image); 
$all_images[] = $image; 
} 
} 

exec('zip -g0 ' . $zip_filename . ' *.jpg *.jpeg'); 
foreach ($all_images as $image) { 
@unlink($destination.$image); 
} 
$zip_filename = $filename . '.zip'; 

while ($row = @mysql_fetch_assoc($result)){ 
$all_images->images as $images); 
} 

в XML бит работает, и:

while ($row = @mysql_fetch_assoc($result)){ 
// XML 
$node = $dom->createElement("ad"); 
$newnode = $parnode->appendChild($node); 
$newnode->setAttribute("vrm",$row['vrm']); 
$newnode->setAttribute("make",$row['make']); 
$newnode->setAttribute("model",$row['model']); 
$newnode->setAttribute("type",$row['type']); 
$newnode->setAttribute("consumerPrice",$row['consumerPrice']); 
$newnode->setAttribute("numPreviousOwners",$row['numPreviousOwners']); 
$newnode->setAttribute("transmission",$row['transmission']); 
$newnode->setAttribute("images",$row['images']); 
$newnode->setAttribute("numPreviousOwners",$row['numPreviousOwners']); 
$newnode->setAttribute("color",$row['color']); 
} 

$dom->save('tmp/ebay/ebay.xml'); 
echo $dom->saveXML(); 

Заранее спасибо!

+0

Обрезка сжатых изображений, таких как jpegs, является пустой тратой времени; Вам повезет получить 10% -ное уменьшение размера. Если это не является обязательным условием для ebay, я бы предложил портировать изображения, если что-нибудь. С tar, вы все равно должны иметь только файл, но не тратите время на его сжатие. –

+0

Привет. Есть несколько изображений, чтобы войти в zip-файл как требование ebay. – LeeG

ответ

2

Я создал отдельный файл php для извлечения фотографий, а затем ftp zip-файл.

Теперь это можно закрыть.

Смежные вопросы