Неустранимая ошибка: невозможно использовать объект типа SplFileInfo в качестве массива - PullRequest
0 голосов
/ 25 января 2019

Я хочу получить все изображения из папки /folder/floder2, а затем проверить, существуют ли эти изображения в БД или нет, а затем удалить, если их нет в БД

ниже мой код -

$imgarray= array();

function rsearch() {
    global $imgarray;
    $directory= $_SERVER['DOCUMENT_ROOT'] . '/folder/folder1';
    $objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

    foreach($objects as $name){
        $imgarray[] = $name;
    }
}

$files = rsearch(); 

foreach ($dbArray as $dbImg ) {
    $Img = trim($dbImg['products_image'],"products/"); 

    foreach ($imgarray as $folderImg) {
        $ignore = Array(".", "..");

        if($Img == $folderImg){
            echo 'success';
        }else {
            unlink($folderImg);
            echo 'successfully deleted';
        }
    }
}

Я получаю тип ниже, когда print_r($folderImg);

SplFileInfo Object ( 
    [pathName:SplFileInfo:private] => /var/www/vhosts/serverfoldername/project.com/projectfolder/folder/folder1/image1.jpg 
    [fileName:SplFileInfo:private] => image1.jpg 
)

Я хочу напечатать это, чтобы напечатать

[fileName:SplFileInfo:private] => image1.jpg

, но я не понимаю, как позвонитьэтот тип

Array ( 
    [0] => SplFileInfo Object ( 
        [pathName:SplFileInfo:private] => /var/www/vhosts/serverfoldername/project.com/projectfolder/folder/folder1/image1.jpg 
        [fileName:SplFileInfo:private] => image1.jpg 
    ) 
    [1] => SplFileInfo Object ( 
        [pathName:SplFileInfo:private] => /var/www/vhosts/serverfoldername/project.com/projectfolder/folder/folder1/imag2.png
        [fileName:SplFileInfo:private] => imag2.png 
    ) 
) 

1 Ответ

0 голосов
/ 25 января 2019

Это даст имя файла объекта SplFileInfo http://php.net/manual/en/class.splfileinfo.php

print_r($folderImg->getFilename()):
...