我遇到了以下问题:
我在文件夹和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);
?>
请帮助我找到它。
答案 0 :(得分:0)
使用file_put_contents
和FILE_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
标志用于保护对文件的并发访问(例如,同时访问不同的客户端请求)。