Мне нужно скачать все фотографии о поместьях из XML, чтобы сохранить на сервере.У каждого ребенка-сословия в XMl есть общий раздел со всей информацией, а затем узел с именем Foto (фотографии усадьбы) и еще один узел для планов (Planimetria).Ссылка каждого изображения структурирована следующим образом:
<Link>http://www.site.it/ImageView.ashx?id=[photoID]&reduce=1438[can be set as I want es: 1000, 960, 1080]</Link>
Мне нужно вызвать его внутри $ url_photo и $ url_plan, чтобы я мог прочитать photoID из XML и установить разрешение (1438,1000,960) с помощьюглобальная переменная.
Это мой код:
<?php
$xml = simplexml_load_file("Schede.xml"); // your xml
$path = '/mnt/c/Users/Giuseppe/Desktop/FotoTest/';
$i = 1;
$resolution = '1000';
// Estate Image
foreach($xml->CR03_SCHEDE as $estate){
//if((string) $estate['ELIMINATO'] = "NO"){
echo "\nEstate n $i Images\n";
foreach($estate->Foto->CR04_SCHEDE_FOTO as $photo){
$url_photo = (string) $photo->Link;
$filename_photo = basename($photo->CR04_FILENAME); // get the filename
if(file_exists($path . $filename_photo)) {
echo "file $filename_photo already exists \n";
}
else {
$img_photo = file_get_contents($url_photo); // get the image from the url
file_put_contents($path . $filename_photo, $img_photo); // create a file and feed the image
echo "file $filename_photo created \n";
}
}
// Plans
echo "\nEstate n $i plans\n";
foreach($estate->Planimetria->CR04_SCHEDE_FOTO as $plan) {
$url_plan = (string) $plan->'http: // www.site.it/ImageView.ashx?id=' . $plan->ID . '&reduce=' . $resolution; //$plan->Link;
$filename_plan = basename($plan->CR04_FILENAME);
if(file_exists($path . $filename_plan)) {
echo "file planimetry $filename_plan already exists \n";
}
else {
$img_plan = file_get_contents($url_plan); // get the image from the url
file_put_contents($path . $filename_plan, $img_plan); // create a file and feed the image
echo "file planimetry $filename_plan created \n";
}
}
$i++;
/*}
else{
echo "$estate->attributes(Riferimento)"."Deleted\n";
}*/
}
?>
У меня также есть проблема с первым, если он прокомментирован:
if((string) $estate['ELIMINATO'] = "NO")...
Eliminato является атрибутом CR03_SCHEDEно скрипт не прочитает его и в любом случае перейдет внутрь if.Полный XML имеет около 70/80 свойств, и foreach хорошо работает для загрузки всех изображений, но мне нужно, чтобы он загружал только одно, у которого этот атрибут равен NO
Это пример XML (толькоодно поместье): ссылка
Спасибо всем