将图像名称与数据库记录匹配

时间:2014-09-11 07:55:50

标签: php

我遇到了以下问题:

我在文件夹和sql数据库记录中有一些图像。我从文件夹中获取所有图像,我们

将该图像名称与数据库中的字段匹配。如果这些是相同的,那么我们必须

使用其他名称重命名该图像。

我的问题是如何创建日志文件并将记录插入日志文件中有任何匹配

与否。

<?php

define("BASE_IMAGE_PATH", "D:\\");
define("IMAGE_FOLDER_NAME", "2014finalfour\\");
define("IMAGE_FOLDER_NAME_MODIFIED", "modified\\");
define("IMAGE_File_Path", BASE_IMAGE_PATH . IMAGE_FOLDER_NAME);
define("IMAGE_File_Path_Modified", BASE_IMAGE_PATH . IMAGE_FOLDER_NAME . IMAGE_FOLDER_NAME_MODIFIED);
ini_set("display_error", 0);
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
$srcdir  = constant("IMAGE_File_Path");
$destdir = constant("IMAGE_File_Path_Modified");

if (!file_exists(IMAGE_File_Path_Modified)) {
    mkdir(IMAGE_File_Path_Modified, 0777, true);
}

$conn      = odbc_connect('NCAA', 'sa', '12345');
$query     = "Select ImageID,Zoho_ID from UDFields where ImageID IS NOT NULL ";
$resa      = odbc_exec($conn, $query);
$image_id  = array();
$full_name = array();
$zoho_id   = array();

while ($row = odbc_fetch_array($resa)) {
    $zoho_id[]  = $row['Zoho_ID'];
    $image_id[] = $row['ImageID'];
}

$srcdire = opendir($srcdir);

for ($j = 0; $j < count($zoho_id); $j++) {
    $full_name[$j] = $zoho_id[$j] . '_' . $image_id[$j];
}

while ($readFile = readdir($srcdire)) {
    if ($readFile != '.' && $readFile != '..') {
        if (!file_exists($readFile)) {
            for ($i = 0; $i < count($image_id); $i++) {
                if ($readFile == $image_id[$i]) {
                    copy($srcdir . $readFile, $destdir . $full_name[$i]);
                }
            }
        }
    }
}

echo "Export Successfully";
closedir($srcdir);
odbc_close($conn);
?>

请帮助我找到它。

1 个答案:

答案 0 :(得分:0)

使用file_put_contentsFILE_APPEND标志来管理日志文件。例如:

if (image in database) {
    file_put_contents($log_filename, "Image was found\n", FILE_APPEND | LOCK_EX);
} else {
    file_put_contents($log_filename, "Image was NOT found\n", FILE_APPEND | LOCK_EX);
}

LOCK_EX标志用于保护对文件的并发访问(例如,同时访问不同的客户端请求)。